Unity克隆敌人无法正常触发经验获取问题求助
Unity克隆敌人无法触发经验获取,手动放置敌人功能正常
我在Unity里做了个类似无塔防的波次防御玩法:场景里手动放了两个敌人,同时给一个平面挂载了脚本,用来持续生成敌人。
手动放置的两个敌人功能完全正常:击杀后能给玩家增加经验,接触玩家时会扣除玩家生命值。但脚本生成的克隆敌人(名字显示为ENEMY(Clone))却只有一半功能——只能通过碰撞扣除玩家生命值,击杀后完全不给经验!
我已经确认过,这些克隆敌人确实带有"Enemy"标签,而且相关对象的关联设置也都检查过了,要是设置有误的话,手动放置的敌人应该也会出问题,但现在问题只出在克隆出来的敌人身上。我是Unity和C#新手,要是需要更多信息可以随时提供。
敌人生成平面脚本
IEnumerator Spawner() { yield return new WaitForSeconds(startWait); while(!stop) { randEnemy = Random.Range(0, 2); Vector3 spawnPosition = new Vector3(Random.Range(-spawnValues.x, spawnValues.x), 2, Random.Range(-spawnValues.z, spawnValues.z)); Instantiate(enemies[randEnemy], spawnPosition + transform.TransformPoint(0, 0, 0), gameObject.transform.rotation); yield return new WaitForSeconds(spawnWait); } }
触发经验给予的敌人脚本
void Dead() { _characterXP.GainExp(120); Destroy(gameObject); }
玩家经验获取脚本
public void GainExp(float expThatWasGained) { CurrentExp += expThatWasGained; }
补充说明
- 预制件配置:敌人预制件的组件、标签等设置均正确
- 手动放置敌人状态:游戏运行时,手动放置的敌人组件、标签正常,功能无异常
- 克隆敌人状态:游戏运行时,克隆敌人标签正确,但无法触发经验给予逻辑
内容的提问来源于stack exchange,提问作者Obahar
相关产品推荐
相关产品推荐

