我有一个地形,我放置了两个敌人和一架飞机,我已经给了一个脚本来连续产生敌人(基本上没有塔的波浪防御)
我放置的两个敌人按预期工作,杀死他们会给予经验并与他们接触会让玩家感到健康。
但是我的脚本飞机产生的那些不会给予杀戮的经验,他们在接触时造成健康损害的唯一原因是因为我设置了碰撞以寻找" Enemy&#34的标签;他们有。
# THE SCRIPT FOR THE ENEMY-SPAWNING PLANE
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);
}
}
# THE SCRIPT WHICH CALLS FOR EXPERIENCE TO BE GIVEN (Enemy as GameObject)
void Dead()
{
_characterXP.GainExp(120);
Destroy(gameObject);
}
# THE SCRIPT WHICH GIVES THE PLAYER EXPERIENCE (CharacterXP as GameObject)
public void GainExp(float expThatWasGained)
{
CurrentExp += expThatWasGained;
}
我还是Unity和C#的新手,所以如果还有其他需要我可以提供它,我已检查所有相关对象以确保相关内容正确连接,如果他们没有工作然后它会影响原始的敌人,问题仅在于那些被命名为ENEMY(Clone)的衍生敌人
修改
<小时/> 预生成的敌人中期游戏^ Clone Enemy Mid-Game ^
答案 0 :(得分:1)
您无法将场景对象分配给预制属性字段。您只能将其他预制件(或资产)分配到预制件属性插槽中。 要将场景对象分配给敌人脚本,您需要在运行时找到它。
在敌人的Start方法中,找到fpscontroller
void Start()
{
_characterXP = GameObject.FindObjectOfType<FPSController>();
}
我认为这将解决您的问题
答案 1 :(得分:0)