Jump to content
Unity Insider Forum

Positionsbegrenzung eines Gameobjekts


Zerbo93

Recommended Posts

Hallo zusammen,

ich suche eine Möglichkeit, die Bewegungsmöglichkeit eines, vom Spieler gesteuerten, Gameobjekts zu beschränken. Sprich das die Bewegung des Gameobjekts nur in den Bereichen,
x zwischen -150 und 150
z zwischen -150 und 150
,möglich ist.

 

Hintergrund: ich arbeite an einer Wirtschaftssimulation und der Kameraanker (das zu begrenzende Gameobjekt), kann sich aktuell komplett von der Map weg bewegen. So ist das natürlich etwas hirnrissig :D

 

Hier der Abschnitt, mit dem ich den Anchor bewege:

	Vector3 forward = cam.transform.forward;
        forward.y = 0.0f;
        forward.Normalize();

        Vector3 right = cam.transform.right;
        right.y = 0.0f;
        right.Normalize();

        float moveX = Input.GetAxisRaw("Horizontal");
        float moveZ = Input.GetAxisRaw("Vertical");

        Vector3 dir = forward * moveZ + right * moveX;
        dir.Normalize();

        dir *= moveSpeed * Time.deltaTime;

        transform.position += dir;

 

Vielen Dank für eure Hilfe im Voraus!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!

Sowas?

var pos = transform.position; // Nur, damit's etwas kürzer zu schreiben wird im Folgenden
transform.position = new Vector3(Mathf.Clamp(pos.x, -150f, 150f),
                                 pos.y,
                                 Mathf.Clamp(pos.z, -150f, 150f));

Kann man natürlich noch hübscher machen, dass man die 150 in Felder auslagert und das im Editor einstellen kann oder so... aber die Idee ist klar, denke ich.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 31 Minuten schrieb Sascha:

Moin!

Sowas?


var pos = transform.position; // Nur, damit's etwas kürzer zu schreiben wird im Folgenden
transform.position = new Vector3(Mathf.Clamp(pos.x, -150f, 150f),
                                 pos.y,
                                 Mathf.Clamp(pos.z, -150f, 150f));

Kann man natürlich noch hübscher machen, dass man die 150 in Felder auslagert und das im Editor einstellen kann oder so... aber die Idee ist klar, denke ich.

Perfekt! Danke. Genau sowas habe ich gesucht. :)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...