summaryrefslogtreecommitdiff
path: root/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-09 10:17:45 +0800
committerchai <215380520@qq.com>2023-05-09 10:17:45 +0800
commitc35533e31efe30121a7c61a725fdaaba47714296 (patch)
treeb25bc22f00911f376c741b89b0591d2d48565e79 /marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
parentd2a574ba76c56c340d8ac0ad841344664bc2cc59 (diff)
*misc
Diffstat (limited to 'marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs')
-rw-r--r--marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs16
1 files changed, 12 insertions, 4 deletions
diff --git a/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs b/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
index d33b494..cabed35 100644
--- a/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
+++ b/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
@@ -29,6 +29,8 @@ public class SpiritScript : UnitBase
base.Awake();
collider = GetComponent<FastCircleCollider>();
m_SpriteRenderer = GetComponent<SpriteRenderer>();
+ speed = 2;
+ TestSpirits.spirits.Add(this);
}
protected override void Update()
@@ -36,7 +38,7 @@ public class SpiritScript : UnitBase
base.Update();
}
- private void FixedUpdate()
+ public void Tick()
{
UnitBase hero = UnitManager.hero;
Vector2 pos = transform.position;
@@ -48,7 +50,9 @@ public class SpiritScript : UnitBase
collisions.Clear();
bool bCollide = false;
- if (m_CollisionCheckerCount == 0 && TestQuadtree.quadtree.Retrieve(ref collisions, collider))
+ // 这个优化可能会导致穿透
+ //if (m_CollisionCheckerCount == 0 && PhysicsManager.Instance.RetriveColliders(ref collisions, collider))
+ if (/*m_CollisionCheckerCount == 0 &&*/ PhysicsManager.Instance.RetriveColliders(ref collisions, collider))
{
count = collisions.Count;
sAvg = (sCount * sAvg + count) / (float)(sCount + 1);
@@ -67,8 +71,8 @@ public class SpiritScript : UnitBase
movable = false;
Vector2 distance = collider.center - col.center;
seperate = distance.normalized * (col.radius + collider.radius - distance.magnitude); //
- dist += seperate;
dist -= (distance.normalized * dist) * distance.normalized; // 去除这个方向的位移
+ dist += seperate;
}
}
if (!movable)
@@ -84,10 +88,14 @@ public class SpiritScript : UnitBase
m_CollisionCheckerCount++;
m_CollisionCheckerCount %= 10;
}
- dist = dist.normalized * Time.deltaTime * speed; // 保持原速
+ // dist = dist.normalized * Time.deltaTime * speed; // 保持原速
transform.position += dist.ToVector3();
}
+ private void FixedUpdate()
+ {
+ }
+
public void Die()
{
Item_Coin coin = Instantiate(coinPrefab) as Item_Coin;