我看到了一些与我的问题类似的问题,但我无法让它适用于我的特定需求。
我有两个脚本,都是用UnityScript编写的,分别是EnemyHealth.js和BasicAI.js。在EnemyHealth.js中,我有一个名为Health的int变量。我希望将其作为一个变量传递到BasicAI.js中,以便我可以检查敌人的生命值是否低于某个范围。这两个脚本都附加到名为’Enemy’的游戏对象上。
我的问题的第二部分是,如果变量Health低于某个数值(比如20),我想调用一个名为flee()的函数。我应该如何让敌人转身离开玩家并继续移动?
谢谢。
回答:
为了回答你的第一个问题,你需要使用(GetComponent)[http://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html]。这样做的作用是让你获取GameObject上特定类型的其他脚本。在你的情况下,你可以这样做:
var enemyHealth = gameObject.GetComponent(EnemyHealth);
然后,你需要一种公共的方式来访问名为Health的变量,无论该变量是公共的,还是有一个公共的getter(如果你不希望BasicAI修改生命值,那么你应该选择getter方式,而不是简单地将变量设为公共)。
现在,关于让敌人逃跑,这是一个相当复杂的问题,涉及到许多方面,我认为在一般情况下回答这个问题可能有点太宽泛了。你可能需要查找一些基本的AI脚本编写来掌握这些概念。