怪物正常死亡
This commit is contained in:
parent
5a1e673363
commit
cb20481357
@ -27,13 +27,15 @@ public class ObJPool<T>
|
|||||||
if (SurvivalPool.Contains(obj))
|
if (SurvivalPool.Contains(obj))
|
||||||
{
|
{
|
||||||
SurvivalPool.Remove(obj);
|
SurvivalPool.Remove(obj);
|
||||||
DeathPool.Add(obj);
|
DeathPool.Add(obj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SpawnPool : Base
|
public class SpawnPool : Base
|
||||||
{
|
{
|
||||||
|
public static SpawnPool intance;
|
||||||
|
|
||||||
public ObJPool<GameObject> EnemyPool = new ObJPool<GameObject>();
|
public ObJPool<GameObject> EnemyPool = new ObJPool<GameObject>();
|
||||||
|
|
||||||
[Header("生成预制体")]
|
[Header("生成预制体")]
|
||||||
@ -65,6 +67,11 @@ public class SpawnPool : Base
|
|||||||
private bool isWaveComplete = false; // 标记当前波是否完成
|
private bool isWaveComplete = false; // 标记当前波是否完成
|
||||||
|
|
||||||
// Start is called before the first frame update
|
// Start is called before the first frame update
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
intance = this;
|
||||||
|
}
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
Base.GlobalObj.GetComponent<gameGlobal>().OnGamePlay += this.StartSpawning;
|
Base.GlobalObj.GetComponent<gameGlobal>().OnGamePlay += this.StartSpawning;
|
||||||
|
@ -27,13 +27,60 @@ public class enemy : Role
|
|||||||
public override void die()
|
public override void die()
|
||||||
{
|
{
|
||||||
if (Application.isPlaying)
|
if (Application.isPlaying)
|
||||||
{
|
{
|
||||||
// 将当前敌人对象放入死亡池
|
// 将当前敌人对象放入死亡池
|
||||||
SpawnPool spawnPool = Base.GlobalObj.GetComponent<SpawnPool>(); // 获取 SpawnPool 组件
|
SpawnPool spawnPool = SpawnPool.intance; // 获取 SpawnPool 组件
|
||||||
if (spawnPool != null)
|
if (spawnPool != null)
|
||||||
{
|
{
|
||||||
|
Debug.LogError(this.name+"die");
|
||||||
spawnPool.ReturnEnemyToPool(this.gameObject); // 回收当前敌人到池中
|
spawnPool.ReturnEnemyToPool(this.gameObject); // 回收当前敌人到池中
|
||||||
|
ResetAllStatus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 重置角色所有状态
|
||||||
|
/// </summary>
|
||||||
|
public void ResetAllStatus()
|
||||||
|
{
|
||||||
|
// 重置血量
|
||||||
|
Hp = 100f;
|
||||||
|
|
||||||
|
// 重置攻击力
|
||||||
|
Attack = 10f;
|
||||||
|
|
||||||
|
// 重置护甲
|
||||||
|
physicalArmor = 10;
|
||||||
|
magicArmor = 5;
|
||||||
|
|
||||||
|
// 重置等级
|
||||||
|
Level = 1;
|
||||||
|
|
||||||
|
// 重置金币
|
||||||
|
Gold = 10f;
|
||||||
|
|
||||||
|
// 清空 Buff 列表
|
||||||
|
buffList.Clear();
|
||||||
|
|
||||||
|
// 如果有导航组件,停止当前的导航行为
|
||||||
|
if (Navigation != null)
|
||||||
|
{
|
||||||
|
//Navigation.Stop(); // 假设你有 Stop 方法来停止导航
|
||||||
|
}
|
||||||
|
|
||||||
|
// 重置角色动画
|
||||||
|
animationHighlight = 0;
|
||||||
|
isAnimationPlay = false;
|
||||||
|
|
||||||
|
// 重置碰撞体(根据需求是否需要调整)
|
||||||
|
if (mycollider != null)
|
||||||
|
{
|
||||||
|
mycollider.enabled = true; // 启用碰撞体
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 如果有其他需要重置的状态,可以在这里添加
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user