【发布时间】:2014-11-19 19:40:34
【问题描述】:
现在,我正在制作一款限时“逃生”主题游戏,玩家必须找到坠毁时散落的飞船碎片才能离开地球。玩家必须避开最终会在整个关卡中追逐他们的敌人。
我目前的问题是弄清楚一旦触发后如何让多个敌人跟随。
现在只有一个跟随,但该区域的其他 5 个没有移动。我正在考虑将它们放入一个数组中,但我不确定这是否会起作用,因为我需要访问 navmeshagent 组件
这是我的代码:
#pragma strict
//script by Kyle Crombie & Paul Christopher
//will add negative action if collision is detected with player
var target : Transform; //the enemy's target
var isSeen: boolean = false;
var agent: NavMeshAgent;
function OnTriggerStay() {
isSeen = true;
target = GameObject.FindWithTag("Player").transform; //target the player
}
function Update () {
if(isSeen){
agent.SetDestination(target.position);
}
}
【问题讨论】:
-
该语言称为 UnityScript,语法相似但语言不同
-
你是不是要让所有敌人都被触发后跟随他们?
-
也;当 anything 与触发器发生碰撞时,OnTriggerStay() 函数将激活,我怀疑您会想要检查玩家对象是否是触发器中的对象....如果您可以访问碰撞对象在函数调用中包含参数,请参阅文档:docs.unity3d.com/ScriptReference/Collider.OnTriggerStay.html 然后您可以检查“other.tag = "Player"" 或类似的东西来检查是否是玩家与触发器发生碰撞
标签: unity3d navigation artificial-intelligence unityscript path-finding