summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--marching/Assets/Scenes/Test.unity73
-rw-r--r--marching/Assets/Scripts/Managers/CameraManager.cs10
-rw-r--r--marching/Assets/Scripts/Managers/CameraManager.cs.meta11
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager.cs81
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs10
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager_CollisionTree.cs45
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager_CollisionTree.cs.meta11
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager_HurtboxTree.cs40
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsManager_HurtboxTree.cs.meta11
-rw-r--r--marching/Assets/Scripts/Physics/PhysicsQuadtree.cs14
-rw-r--r--marching/Assets/Scripts/Physics/Quadtree.cs11
-rw-r--r--marching/Assets/Scripts/Physics/TestQuadtree.cs4
-rw-r--r--marching/Assets/Scripts/Physics/TestSpirits.cs6
-rw-r--r--marching/Assets/Scripts/Projectiles/BladeScript.cs9
-rw-r--r--marching/Assets/Scripts/UI/Operators/AlienHunter.meta8
-rw-r--r--marching/Assets/Scripts/UI/Operators/Finisher.meta8
-rw-r--r--marching/Assets/Scripts/Unit/Characters/Samurai/SamuraiScript.cs9
17 files changed, 254 insertions, 107 deletions
diff --git a/marching/Assets/Scenes/Test.unity b/marching/Assets/Scenes/Test.unity
index e4ed8be..68969f3 100644
--- a/marching/Assets/Scenes/Test.unity
+++ b/marching/Assets/Scenes/Test.unity
@@ -3487,6 +3487,45 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 38
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &542668429
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 542668430}
+ m_Layer: 5
+ m_Name: Root_Bottom
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!224 &542668430
+RectTransform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 542668429}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children:
+ - {fileID: 1261272934}
+ - {fileID: 1079873262}
+ - {fileID: 1227656528}
+ m_Father: {fileID: 578225832}
+ m_RootOrder: 3
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+ m_AnchorMin: {x: 0.5, y: 0.5}
+ m_AnchorMax: {x: 0.5, y: 0.5}
+ m_AnchoredPosition: {x: 25.002, y: -466.202}
+ m_SizeDelta: {x: 532.4, y: 131.1641}
+ m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &578225828
GameObject:
m_ObjectHideFlags: 0
@@ -3581,10 +3620,8 @@ RectTransform:
m_Children:
- {fileID: 578495190}
- {fileID: 1490675248}
- - {fileID: 1261272934}
- - {fileID: 1079873262}
- - {fileID: 1227656528}
- {fileID: 761293111}
+ - {fileID: 542668430}
m_Father: {fileID: 0}
m_RootOrder: 63
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -5525,12 +5562,12 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 578225832}
- m_RootOrder: 5
+ m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
- m_SizeDelta: {x: 182.0323, y: 66.6478}
+ m_SizeDelta: {x: 375, y: 66.6478}
m_Pivot: {x: 0, y: 1}
--- !u!114 &761293112
MonoBehaviour:
@@ -7205,7 +7242,7 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1079873261}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
@@ -7213,12 +7250,12 @@ RectTransform:
- {fileID: 1110399556}
- {fileID: 1951291718}
- {fileID: 1750602998}
- m_Father: {fileID: 578225832}
- m_RootOrder: 3
+ m_Father: {fileID: 542668430}
+ m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
- m_AnchoredPosition: {x: 0, y: -17}
+ m_AnchoredPosition: {x: -25.002014, y: 449.202}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1110399555
@@ -8278,7 +8315,7 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1227656527}
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
@@ -8286,12 +8323,12 @@ RectTransform:
- {fileID: 654888032}
- {fileID: 1654076254}
- {fileID: 950421001}
- m_Father: {fileID: 578225832}
- m_RootOrder: 4
+ m_Father: {fileID: 542668430}
+ m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
- m_AnchoredPosition: {x: 0, y: -59}
+ m_AnchoredPosition: {x: -25.002014, y: 407.20203}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!1 &1256553123
@@ -8478,12 +8515,12 @@ RectTransform:
- {fileID: 1738161038}
- {fileID: 1352060881}
- {fileID: 1602509559}
- m_Father: {fileID: 578225832}
- m_RootOrder: 2
+ m_Father: {fileID: 542668430}
+ m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
- m_AnchoredPosition: {x: 25.004395, y: -418}
+ m_AnchoredPosition: {x: 0.002380371, y: 48.202026}
m_SizeDelta: {x: 532.4, y: 34.7595}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1261272935
@@ -13221,6 +13258,10 @@ PrefabInstance:
propertyPath: m_Name
value: ground_break
objectReference: {fileID: 0}
+ - target: {fileID: 570215259797550039, guid: 57b232593206cca4099ab1fb5ec80e04, type: 3}
+ propertyPath: m_IsActive
+ value: 0
+ objectReference: {fileID: 0}
- target: {fileID: 8466282754425654057, guid: 57b232593206cca4099ab1fb5ec80e04, type: 3}
propertyPath: m_RootOrder
value: 60
diff --git a/marching/Assets/Scripts/Managers/CameraManager.cs b/marching/Assets/Scripts/Managers/CameraManager.cs
new file mode 100644
index 0000000..b063bb2
--- /dev/null
+++ b/marching/Assets/Scripts/Managers/CameraManager.cs
@@ -0,0 +1,10 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class CameraManager : Singleton<CameraManager>
+{
+
+
+
+}
diff --git a/marching/Assets/Scripts/Managers/CameraManager.cs.meta b/marching/Assets/Scripts/Managers/CameraManager.cs.meta
new file mode 100644
index 0000000..13e9a10
--- /dev/null
+++ b/marching/Assets/Scripts/Managers/CameraManager.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 99d25fcd0b568564c8f5530b957bdcb3
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager.cs b/marching/Assets/Scripts/Physics/PhysicsManager.cs
index bbba030..164d62b 100644
--- a/marching/Assets/Scripts/Physics/PhysicsManager.cs
+++ b/marching/Assets/Scripts/Physics/PhysicsManager.cs
@@ -13,87 +13,14 @@ public enum ColliderType
public partial class PhysicsManager : Singleton<PhysicsManager>
{
- #region Quadtrees
- private PhysicsQuadtree m_CollisionQuadtree;
- private PhysicsQuadtree m_HurtboxQuadtree;
- #endregion
-
- public Vector4 collisionQuadtreeRange
- {
- set
- {
- m_CollisionQuadtree.quadtreeRange = value;
- }
- }
-
- public Vector4 hurtboxQuadtreeRange
- {
- set
- {
- m_HurtboxQuadtree.quadtreeRange = value;
- }
- }
public List<IQuadTreeObject> sharedRetriveResults => m_SharedRetriveResults;
private List<IQuadTreeObject> m_SharedRetriveResults = new List<IQuadTreeObject>();
- public PhysicsManager()
+ public PhysicsManager()
{
m_CollisionQuadtree = new PhysicsQuadtree(new Vector4(0, 0, 30, 30));
m_HurtboxQuadtree = new PhysicsQuadtree(new Vector4(0, 0, 30, 30));
- }
-
- public void AddCollider(IQuadTreeObject collider)
- {
- m_CollisionQuadtree.AddObject(collider);
- }
-
- public void RemoveCollider(IQuadTreeObject collider)
- {
- m_CollisionQuadtree.RemoveObject(collider);
- }
-
- public void AddHurtboxes(IQuadTreeObject hurtbox)
- {
- m_HurtboxQuadtree.AddObject(hurtbox);
- }
-
- public void RemoveHurtbox(IQuadTreeObject hurtbox)
- {
- m_HurtboxQuadtree.RemoveObject(hurtbox);
- }
-
- public void Update()
- {
- m_CollisionQuadtree.UpdateQuadtree();
- m_HurtboxQuadtree.UpdateQuadtree();
- }
-
- public bool RetriveColliders(ref List<IQuadTreeObject> returnObjs, IQuadTreeObject obj)
- {
- return m_CollisionQuadtree.Retrive(ref returnObjs, obj);
- }
-
- public bool RetriveColliders(ref List<IQuadTreeObject> returnObjs, Vector4 bound)
- {
- return m_CollisionQuadtree.Retrive(ref returnObjs, bound);
- }
-
- public bool RetriveHurtboxes(ref List<IQuadTreeObject> returnObjs, Vector4 bound)
- {
- return m_HurtboxQuadtree.Retrive(ref returnObjs, bound);
- }
-
- public bool RetriveColliders(Vector4 bound)
- {
- m_SharedRetriveResults.Clear();
- return m_CollisionQuadtree.Retrive(ref m_SharedRetriveResults, bound);
- }
-
- public bool RetriveHurtboxes(Vector4 bound)
- {
- m_SharedRetriveResults.Clear();
- return m_HurtboxQuadtree.Retrive(ref m_SharedRetriveResults, bound);
}
public System.Func<Vector4, bool> GetRetriverByType(ColliderType type)
@@ -106,6 +33,12 @@ public partial class PhysicsManager : Singleton<PhysicsManager>
return null;
}
+ public void Update()
+ {
+ m_CollisionQuadtree.UpdateQuadtree();
+ m_HurtboxQuadtree.UpdateQuadtree();
+ }
+
public void Debug()
{
m_CollisionQuadtree.Debug();
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs
index 3436a34..a0dcc97 100644
--- a/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs
+++ b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionDetection.cs
@@ -48,8 +48,14 @@ public partial class PhysicsManager : Singleton<PhysicsManager>
public static bool BoxVsBox(Vector4 b1, Vector4 b2)
{
- Vector2 intersection = new Vector2();
- return BoxVsBox(b1, b2, out intersection);
+ float b1w = b1.z / 2f, b1h = b1.w / 2f, b2w = b2.z / 2f, b2h = b2.w / 2f;
+ float distX = b2.x - b1.x;
+ float distY = b2.y - b1.y;
+ if (Mathf.Abs(distX) < b1w + b2w && Mathf.Abs(distY) < b1h + b2h)
+ {
+ return true;
+ }
+ return false;
}
public static bool BoxVsCircle(Vector4 box, Vector2 pos, float radius)
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager_CollisionTree.cs b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionTree.cs
new file mode 100644
index 0000000..f372f3a
--- /dev/null
+++ b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionTree.cs
@@ -0,0 +1,45 @@
+using mh;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public partial class PhysicsManager : Singleton<PhysicsManager>
+{
+
+ private PhysicsQuadtree m_CollisionQuadtree;
+
+ public Vector4 collisionQuadtreeRange
+ {
+ set
+ {
+ m_CollisionQuadtree.quadtreeRange = value;
+ }
+ }
+
+ public void AddCollider(IQuadTreeObject collider)
+ {
+ m_CollisionQuadtree.AddObject(collider);
+ }
+
+ public void RemoveCollider(IQuadTreeObject collider)
+ {
+ m_CollisionQuadtree.RemoveObject(collider);
+ }
+
+ public bool RetriveColliders(ref List<IQuadTreeObject> returnObjs, IQuadTreeObject obj)
+ {
+ return m_CollisionQuadtree.Retrive(ref returnObjs, obj);
+ }
+
+ public bool RetriveColliders(ref List<IQuadTreeObject> returnObjs, Vector4 bound)
+ {
+ return m_CollisionQuadtree.Retrive(ref returnObjs, bound);
+ }
+
+ public bool RetriveColliders(Vector4 bound)
+ {
+ m_SharedRetriveResults.Clear();
+ return m_CollisionQuadtree.Retrive(ref m_SharedRetriveResults, bound);
+ }
+
+} \ No newline at end of file
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager_CollisionTree.cs.meta b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionTree.cs.meta
new file mode 100644
index 0000000..1ac4a70
--- /dev/null
+++ b/marching/Assets/Scripts/Physics/PhysicsManager_CollisionTree.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: eb174e1114e8e3d439bdb43fa7d609b8
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager_HurtboxTree.cs b/marching/Assets/Scripts/Physics/PhysicsManager_HurtboxTree.cs
new file mode 100644
index 0000000..ca13935
--- /dev/null
+++ b/marching/Assets/Scripts/Physics/PhysicsManager_HurtboxTree.cs
@@ -0,0 +1,40 @@
+using mh;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public partial class PhysicsManager : Singleton<PhysicsManager>
+{
+
+ private PhysicsQuadtree m_HurtboxQuadtree;
+
+ public Vector4 hurtboxQuadtreeRange
+ {
+ set
+ {
+ m_HurtboxQuadtree.quadtreeRange = value;
+ }
+ }
+
+ public void AddHurtboxes(IQuadTreeObject hurtbox)
+ {
+ m_HurtboxQuadtree.AddObject(hurtbox);
+ }
+
+ public void RemoveHurtbox(IQuadTreeObject hurtbox)
+ {
+ m_HurtboxQuadtree.RemoveObject(hurtbox);
+ }
+
+ public bool RetriveHurtboxes(ref List<IQuadTreeObject> returnObjs, Vector4 bound)
+ {
+ return m_HurtboxQuadtree.Retrive(ref returnObjs, bound);
+ }
+
+ public bool RetriveHurtboxes(Vector4 bound)
+ {
+ m_SharedRetriveResults.Clear();
+ return m_HurtboxQuadtree.Retrive(ref m_SharedRetriveResults, bound);
+ }
+
+}
diff --git a/marching/Assets/Scripts/Physics/PhysicsManager_HurtboxTree.cs.meta b/marching/Assets/Scripts/Physics/PhysicsManager_HurtboxTree.cs.meta
new file mode 100644
index 0000000..39cd699
--- /dev/null
+++ b/marching/Assets/Scripts/Physics/PhysicsManager_HurtboxTree.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 9fc247f3e6aafbd45a935ef4b1ced70c
+MonoImporter:
+ externalObjects: {}
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs b/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs
index cb17900..f4bad27 100644
--- a/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs
+++ b/marching/Assets/Scripts/Physics/PhysicsQuadtree.cs
@@ -16,7 +16,7 @@ class PhysicsQuadtree
public PhysicsQuadtree(Vector4 range)
{
m_QuadtreeRange = range;
- m_Quadtree = new Quadtree(0, range);
+ m_Quadtree = new Quadtree(0, range, true);
}
public void AddObject(IQuadTreeObject obj)
@@ -33,17 +33,22 @@ class PhysicsQuadtree
{
m_Quadtree.Clear(false);
m_Quadtree.Rebound(m_QuadtreeRange);
+ Vector4 bound = m_Quadtree.bound;
for (int i = 0; i < m_Objects.Count; i++)
{
IQuadTreeObject obj = m_Objects[i];
- m_Quadtree.Insert(obj);
+ // 简单的忽略中心在边界外的object
+ if(PhysicsManager.IsPointInsideBox(bound, obj.bound.xy()))
+ {
+ m_Quadtree.Insert(obj);
+ }
}
}
public void Debug()
{
Color c = Gizmos.color;
- Gizmos.color = Color.red;
+ Gizmos.color = Color.green;
m_Quadtree?.Iterate((t) =>
{
Vector3 pos = new Vector3(t.x, t.y, 0);
@@ -63,5 +68,4 @@ class PhysicsQuadtree
return m_Quadtree.Retrieve(ref returnObjs, bound);
}
-}
-
+} \ No newline at end of file
diff --git a/marching/Assets/Scripts/Physics/Quadtree.cs b/marching/Assets/Scripts/Physics/Quadtree.cs
index f1237ab..9f8ecba 100644
--- a/marching/Assets/Scripts/Physics/Quadtree.cs
+++ b/marching/Assets/Scripts/Physics/Quadtree.cs
@@ -23,14 +23,16 @@ namespace mh
/// </summary>
public class Quadtree
{
- public const int kMaxObjectsPerBlock = 5;
- public const int kMaxLevel = 6;
+ public const int kMaxObjectsPerBlock = 4;
+ public const int kMaxLevel = 5;
private int m_Level;
private Vector4 m_Bounds; // x,y,z,w => posx,posy,width,height
private Quadtree[] m_SubTrees; // Ͻǿʼʱ
private List<IQuadTreeObject> m_Objects; // ǰɣκһ޷ɵĶ
+ private bool m_IsRoot;
+ public Vector4 bound { get { return m_Bounds; } }
public float x { get { return m_Bounds.x; } }
public float y { get { return m_Bounds.y; } }
public float w { get { return m_Bounds.z; } }
@@ -42,6 +44,8 @@ namespace mh
public float top { get { return y + halfH; } }
public float bottom { get { return y - halfH; } }
+ public bool isRoot { get { return m_IsRoot; } }
+
private static Queue<List<IQuadTreeObject>> m_QuadtreeObjPool = new Queue<List<IQuadTreeObject>>();
private static Queue<Quadtree> m_QuadtreePool = new Queue<Quadtree>();
@@ -84,12 +88,13 @@ namespace mh
list = null;
}
- public Quadtree(int level, Vector4 bounds)
+ public Quadtree(int level, Vector4 bounds, bool isRoot = false)
{
m_Level = level;
m_Bounds = bounds;
m_SubTrees = new Quadtree[4];
m_Objects = QueryQuadtreeObjList();
+ m_IsRoot = isRoot;
}
public void Rebound(Vector4 bounds)
diff --git a/marching/Assets/Scripts/Physics/TestQuadtree.cs b/marching/Assets/Scripts/Physics/TestQuadtree.cs
index 54ff5f6..2ea967e 100644
--- a/marching/Assets/Scripts/Physics/TestQuadtree.cs
+++ b/marching/Assets/Scripts/Physics/TestQuadtree.cs
@@ -18,8 +18,8 @@ namespace mh
private void FixedUpdate()
{
var pos = UnitManager.hero.transform.position;
- PhysicsManager.Instance.collisionQuadtreeRange = new Vector4(pos.x, pos.y, 50, 50);
- PhysicsManager.Instance.hurtboxQuadtreeRange = new Vector4(pos.x, pos.y, 50, 50);
+ PhysicsManager.Instance.collisionQuadtreeRange = new Vector4(pos.x, pos.y, 30, 20);
+ PhysicsManager.Instance.hurtboxQuadtreeRange = new Vector4(pos.x, pos.y, 30, 20);
PhysicsManager.Instance.Update();
}
diff --git a/marching/Assets/Scripts/Physics/TestSpirits.cs b/marching/Assets/Scripts/Physics/TestSpirits.cs
index 058f166..3f313ae 100644
--- a/marching/Assets/Scripts/Physics/TestSpirits.cs
+++ b/marching/Assets/Scripts/Physics/TestSpirits.cs
@@ -10,10 +10,12 @@ public class TestSpirits : MonoBehaviour
public static List<SpiritScript> spirits = new List<SpiritScript>();
+ private const int kMaxCount = 500;
+
// Start is called before the first frame update
void Start()
{
- int count = 300 - spirits.Count;
+ int count = kMaxCount - spirits.Count;
for (int i = 0; i < count; ++i)
{
float x = UnityEngine.Random.Range(-20, 10);
@@ -30,7 +32,7 @@ public class TestSpirits : MonoBehaviour
{
while (true)
{
- int count = 300 - spirits.Count;
+ int count = kMaxCount - spirits.Count;
for (int i = 0; i < count; ++i)
{
float x = UnityEngine.Random.Range(-20, 10);
diff --git a/marching/Assets/Scripts/Projectiles/BladeScript.cs b/marching/Assets/Scripts/Projectiles/BladeScript.cs
index 929f574..5a37e4a 100644
--- a/marching/Assets/Scripts/Projectiles/BladeScript.cs
+++ b/marching/Assets/Scripts/Projectiles/BladeScript.cs
@@ -9,6 +9,8 @@ public class BladeScript : ProjectileBase
{
[NonSerialized] public float life;
+ public Vector2 dir;
+
private static List<IQuadTreeObject> collisions = new List<IQuadTreeObject>();
private FastCircleCollider collider;
@@ -25,7 +27,7 @@ public class BladeScript : ProjectileBase
{
collider = GetComponent<FastCircleCollider>();
Invoke("DestroySelf", life);
- Attack();
+ // Attack();
}
void DestroySelf()
@@ -38,6 +40,10 @@ public class BladeScript : ProjectileBase
Color c = sr.color;
c.a *= 0.99f;
sr.color = c;
+
+ transform.localRotation *= Quaternion.Euler(0, 0, 20);
+
+ transform.position += (dir * Time.deltaTime * 10f).ToVector3();
}
public void SetFlip(bool flip)
@@ -73,6 +79,7 @@ public class BladeScript : ProjectileBase
public void FixedUpdate()
{
+ Attack();
}
}
diff --git a/marching/Assets/Scripts/UI/Operators/AlienHunter.meta b/marching/Assets/Scripts/UI/Operators/AlienHunter.meta
new file mode 100644
index 0000000..cdff466
--- /dev/null
+++ b/marching/Assets/Scripts/UI/Operators/AlienHunter.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 757a90f0c6e2c764396bff0250fb2277
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/UI/Operators/Finisher.meta b/marching/Assets/Scripts/UI/Operators/Finisher.meta
new file mode 100644
index 0000000..cff88d8
--- /dev/null
+++ b/marching/Assets/Scripts/UI/Operators/Finisher.meta
@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7957fa2127514fe4a8d02e5f20b91a6b
+folderAsset: yes
+DefaultImporter:
+ externalObjects: {}
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/marching/Assets/Scripts/Unit/Characters/Samurai/SamuraiScript.cs b/marching/Assets/Scripts/Unit/Characters/Samurai/SamuraiScript.cs
index 2026034..966c3d0 100644
--- a/marching/Assets/Scripts/Unit/Characters/Samurai/SamuraiScript.cs
+++ b/marching/Assets/Scripts/Unit/Characters/Samurai/SamuraiScript.cs
@@ -154,10 +154,14 @@ namespace MH
}
else
{
+ Vector3 mousePos = Input.mousePosition;
+ Vector3 mousePos3D = m_Camera.ScreenToWorldPoint(mousePos);
+ Vector2 dir = (mousePos3D.xy() - transform.position.xy()).normalized;
BladeScript blade = Instantiate(m_Blade);
- blade.life = 0.5f;
+ blade.life = 5f;
blade.transform.position = transform.position + new Vector3(1 * fac, 1f, 0);
blade.SetFlip(fac == -1);
+ blade.dir = dir;
fac *= -1;
yield return new WaitForSeconds(interval);
}
@@ -175,8 +179,9 @@ namespace MH
}
else
{
- Strike();
yield return new WaitForSeconds(interval);
+ yield return new WaitForFixedUpdate();
+ Strike();
}
}
}