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); 
} 
の作品ではない私は、私の文字のためのAIを作成しようとしているが、それは 仕事doesntの
+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)); を見ることができます。

+0

私は距離を変更しました。出来た –

関連する問題