2017-01-17 3 views
2

Привет я пытаюсь создать аи для моих персонажей, но он не работает я хочу, чтобы стрелять мой персонаж на виду, но это просто блуждающий в сцене, а не стрельба даже не мой debug.log работаетAI не работает?

public Transform[] Targets; 
private int DestPoint = 0; 
private NavMeshAgent Agent; 
public Transform Player; 
public Rigidbody Bullet; 
public Transform Instantiator; 

void Start() 
{ 
    Agent = GetComponent<NavMeshAgent>(); 
    Agent.autoBraking = false; 
} 

void Update() 
{ 
    if (Vector3.Distance(transform.position, Player.position) < 30f) 
    { 
     Debug.Log ("Shoot"); 
     transform.LookAt (Player); 
     Shoot(); 
    } 
    else if (Vector3.Distance(transform.position, Player.position) > 30f) 
    { 
     GotoNextPoint(); 
    } 
} 

void GotoNextPoint() 
{ 
    Agent.destination = Targets [DestPoint].position; 
    DestPoint = (DestPoint + 1) % Targets.Length; 
} 

void Shoot() 
{ 
    Rigidbody Clone = Instantiate (Bullet, Instantiator.position, Instantiator.rotation) as Rigidbody; 
    Clone.AddForce (Vector3.forward); 
} 
+1

Если debug.log не работает, тогда 'Vector3.Distance (transform.position, Player.position)' никогда не меньше 30. debug.log расстояние до 'if' и посмотреть, что произойдет – Bijan

ответ

1

расстояние просто никогда не меньше, чем 30. В вашем другом:

else if (Vector3.Distance(transform.position, Player.position) > 30f) 
{ 
    GotoNextPoint(); 
} 

сделать Debug.Log(Vector3.Distance(transform.position, Player.position)); так что вы можете видеть, какие ценности вы получаете:

else if (Vector3.Distance(transform.position, Player.position) > 30f) 
{ 
    Debug.Log(Vector3.Distance(transform.position, Player.position)); 
    GotoNextPoint(); 
} 
+0

Я изменил расстояние и это сработало –

 Смежные вопросы

  • Нет связанных вопросов^_^