2013-11-06 2 views
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); 
    } 

} 

Это сценарий, который у меня есть, когда я нажимаю правой кнопкой мыши, он стреляет из вспышки, что я хочу, чтобы враг пошел к вспышке, когда он активен, на момент, мой враг просто игнорирует его. Кто-нибудь знает, почему?make enemy follow flare

Любые ответы оценены.

+0

Пожалуйста, будьте более конкретным. что ты уже испробовал? Выполняется ли код? Вы видите что-нибудь написанное на консоли отладки? Вы пытались удалить все условия и просто запустить код, чтобы обновить положение объектов, затем они перемещаются? – xpereta

ответ

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 
    } 
} 

Убедитесь, что этот сценарий или прикрепиться к gameobect AI, или ссылаться на него (я предполагаю, что из вашего сценария, что сценарий находится на объекте AI).