2017-11-18 1 views
0

Wie bekomme ich das Spielobjekt, um einem anderen Spielobjekt zu folgen, wo es in die Szene gezogen wird, aber nicht in das Zielobjekt bewegt wird? Das Spielobjekt, das ich dem Zielspielobjekt folgen möchte, muss sich über dem Zielspielobjekt befinden.Wie bekomme ich das Spielobjekt, um einem anderen Spielobjekt zu folgen, aber nicht in das Zielobjekt?

Heres mein aktueller Code.

public float speed; 
public GameObject targetObject; 
public Transform myGameObject; 


void Update() 
{ 
    myGameObject.transform.position = 
    Vector3.MoveTowards(myGameObject.transform.position, 
    targetObject.transform.position, Time.deltaTime * speed); 
} 

Antwort

1

können Sie die Position von targetObject überprüfen und die distance zwischen den beiden erhalten. Also würden Sie prüfen, ob myGameObject innerhalb eines bestimmten Radius von targetObject ist, und wenn es nicht in Richtung der Position targetObject ist.

Code könnte wie folgt aussehen:

void Update() 
{ 
    if(Vector3.Distance(myGameObject.transform.position, targetObject.transform.position) >= minimumDistance) { 
     myGameObject.transform.position = 
      Vector3.MoveTowards(myGameObject.transform.position, 
      targetObject.transform.position, Time.deltaTime * speed); 
    } 
} 

Wo minimumDistance den Radius, in dem Sie nicht myGameObject wollen mehr bewegen.


Auch könnte man es in die Position oberhalb targetObject statt in Richtung der Mitte der es verschieben möchten. Auf diese Weise würden Sie so etwas tun:

void Update() 
{ 
    myGameObject.transform.position = 
     Vector3.MoveTowards(myGameObject.transform.position, 
     targetObject.transform.position + new Vector3(0, up, 0), Time.deltaTime * speed); 
} 

Wo up ist, wie weit über dem Zentrum von targetObject Sie das Objekt sein müssen.

Hoffe das half!

+0

omg, wirklich danke für deine hilfe :) – ZM1KEPKTHS7

Verwandte Themen