Unity 5 // 当敌人生成时,敌人目标是 none?

Unity 5 // when enemy spawns , Enemy target is none?

我有一个基本的 AI 脚本,我将在其中指定一个对象供敌人追逐。 问题是,当我将敌人变成预制件时,目标分配变为空白,并且在它是预制件时我无法更改它。我已经尝试在代码本身内分配对象,但我不完全确定该怎么做(我尝试了很多事情,但没有成功)。

关于如何解决第一个问题或如何在代码中分配目标的任何提示都会非常有帮助。 JavaScript 将是代码的首选语言。

这是预制件的预期行为。

您不能 link 属于场景的游戏对象,属于资产中预制件的字段,因为它必须完全独立于任何 实例 你的场景。预制件旨在被实例化,然后,您将能够(通过代码)将您想要的 public 字段分配给实例化的敌人。将预制件视为硬盘中的文件,您可以从中实例化。

没有任何代码很难提供帮助,但我想你可以做类似的事情:

 var newEnemy : EnemyAI = Instantiate(enemyPrefab);
 newEnemy.target = GameObject.FindWithTag ("Player").GetComponent.<Transform>();

我对 Unity 脚本一点都不流利。


您仍然可以通过将预制件拖放到您的场景中来直接 "instantiate" 场景中的敌人,并且您将能够分配 实例化 预制件。