summaryrefslogtreecommitdiff
path: root/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-05-12 10:32:11 +0800
committerchai <215380520@qq.com>2023-05-12 10:32:11 +0800
commit2fc9585797067730f28b03b0727bf05f9deed091 (patch)
tree8807e37b85ba922045eaa17ac445dd0a1d2d730c /marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
parent2a1cd4fda8a4a8e649910d16b4dfa1ce7ae63543 (diff)
+ worldline keepers
Diffstat (limited to 'marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs')
-rw-r--r--marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs113
1 files changed, 0 insertions, 113 deletions
diff --git a/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs b/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
deleted file mode 100644
index 7ebae9c..0000000
--- a/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs
+++ /dev/null
@@ -1,113 +0,0 @@
-using mh;
-using MH;
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class SpiritScript : UnitBase
-{
- public float speed = 10f;
-
- public Item_Coin coinPrefab;
-
- public int count = 0;
- public float avg = 0;
-
- private FastCircleCollider collider;
-
- private static List<IQuadTreeObject> collisions = new List<IQuadTreeObject>();
-
- private SpriteRenderer m_SpriteRenderer;
-
- private int m_CollisionCheckerCount = 0;
-
- private static int sCount = 0;
- private static float sAvg = 0;
-
- protected override void Awake()
- {
- base.Awake();
- collider = GetComponent<FastCircleCollider>();
- m_SpriteRenderer = GetComponent<SpriteRenderer>();
- speed = 2;
- TestSpirits.spirits.Add(this);
- }
-
- protected override void Update()
- {
- base.Update();
- }
-
- public void Tick()
- {
- UnitBase hero = UnitManager.hero;
- Vector2 pos = transform.position;
- Vector2 heroPos = hero.transform.position;
- Vector2 dir = (heroPos - pos).normalized;
- Vector2 dist = dir * Time.deltaTime * speed; // 位移
- m_SpriteRenderer.flipX = dir.x < 0;
-
- collisions.Clear();
-
- bool bCollide = false;
- // 这个优化可能会导致穿透
- //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);
- avg = sAvg;
- sCount++;
- bool movable = true;
- Vector2 seperate = new Vector2();
- for (int i = 0; i < collisions.Count; ++i)
- {
- FastCircleCollider col = collisions[i] as FastCircleCollider;
- if (col == collider)
- continue;
- if (PhysicsManager.CircleVsCircle(col.center, col.radius, collider.center, collider.radius))
- {
- bCollide = true;
- movable = false;
- Vector2 distance = collider.center - col.center;
- seperate = distance.normalized * (col.radius + collider.radius - distance.magnitude); //
- dist -= (distance.normalized * dist) * distance.normalized; // 去除这个方向的位移
- dist += seperate;
- }
- }
- if (!movable)
- {
- }
- }
- if (bCollide)
- {
- m_CollisionCheckerCount = 0;
- }
- else
- {
- m_CollisionCheckerCount++;
- m_CollisionCheckerCount %= 10;
- }
- // dist = dist.normalized * Time.deltaTime * speed; // 保持原速
- transform.position += dist.ToVector3();
- }
-
- private void FixedUpdate()
- {
- }
-
- public void OnDestroy()
- {
- TestSpirits.spirits.Remove(this);
- }
-
- public void Die()
- {
- Item_Coin coin = Instantiate(coinPrefab) as Item_Coin;
- coin.transform.position = this.transform.position;
-
- this.gameObject.SetActive(false);
- Destroy(this.gameObject);
- }
-
-}