2016-12-07 12 views
0

ゲームオブジェクトのパスを作成するとそのパスに従いますが、新しいパスを作成するとそれに追従しません。これを引き起こしているのは何ですか?NavMeshAgentは再計算された新しいパスに従いません

public class Unit : MonoBehaviour { 

    protected NavMeshPath path; 

    void Start() { 
     path = new NavMeshPath(); 
     agent = GetComponent<NavMeshAgent>(); 
     agent.SetPath(path); 
    } 

    public void SetNextWaypoint(Vector3 location){ 
     agent.ResetPath(); 
     agent.CalculatePath(location, path); 
     agent.SetPath(path); 
    } 

} 

私は、この(簡体字)のように見えるウェイポイントのクラスがあります。

public class Waypoint : MonoBehaviour { 
    void OnTriggerEnter(Collider other){ 
     Unit unit = other.GetComponent<Unit>(); 
     Vector3 next = nextTeam2.position; 
     unit.SetNextWaypoint(next); 
    } 
} 

ウェイポイント・トリガが実行されている、などSetNextWaypoint方法があるが。しかし、ゲームオブジェクトは次のウェイポイントに移動しません。それは最初のものに行きますが、そこに到達するとそれは2番目のものには行きません。

答えて

0

私はそれを理解しました!問題は、次のウェイポイントがNavMeshの上にあまりにも遠くに位置していたことでした。しかし何らかの理由でpath.statusはまだPathCompleteを返していました。

navmeshの近くでウェイポイントを移動すると、オブジェクトが停止するのではなく次のウェイポイントに移動することができました。

関連する問題