0
#pragma strict

var flare : GameObject;
var speed : float = 1;

function Start () 
{
    flare = GameObject.FindGameObjectWithTag("flare");
}

function Update () 
{

    var distance = Vector3.Distance(flare.transform.position, transform.position);

    if (distance < 100)
    {
        Debug.Log ("Enemy is close to flare");

        var delta = flare.transform.position - transform.position;
        delta.Normalize();

        var moveSpeed = speed * Time.deltaTime;

        transform.position = transform.position + (delta * moveSpeed);
    }
    else
    {
        Debug.Log("Not close yet" + distance);
    }

}

这是我的脚本,当我右键单击鼠标时,它会射出一个耀斑,我想要发生的事情是让敌人在它活跃时朝着耀斑前进,此刻,我的敌人只是忽略了它。有没有人知道为什么?

任何答复表示赞赏。

4

1 回答 1

1

我不确定 Javascript——但在 C#(类似)中,您可以进行一些更改。

void Start( ){
    flare = GameObject.FindObjectWithTag( "flare" ).transform;
}
void Update( ){
    var distance = Vector3.Distance(flare.transform.position, transform.position);
    if( distance < 100 ){
        transform.position = Vector3.MoveTowards( transform.position, 
                                                  flare.transform.position,
                                                  speed * Time.deltaTime );
    } else {
        //Do otherthings
    }
}

确保此脚本附加到 AI gameobect 或正在引用它(我从您的脚本中假设该脚本位于 AI 对象上)。

于 2013-11-07T00:24:05.757 回答