Unity – 从不同脚本传递变量 + 让敌人逃跑

我看到了一些与我的问题类似的问题,但我无法让它适用于我的特定需求。

我有两个脚本,都是用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脚本编写来掌握这些概念。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注