Unity Objekte in eine Richtung bewegen?

2 Antworten

Verstehe ich das richtig, du willst ein Objekt um ein anderes rotieren lassen?

Da kannst du transform.RotateAround benutzen.

Ich habe ein Code Snippet dafür gefunden, mit variablem Radius:

using UnityEngine;
 using System.Collections;
 
 public class testRotate2 : MonoBehaviour {
     
     GameObject cube;
     public Transform center;
     public Vector3 axis = Vector3.up;
     public Vector3 desiredPosition;
     public float radius = 2.0f;
     public float radiusSpeed = 0.5f;
     public float rotationSpeed = 80.0f;
 
     void Start () {
         cube = GameObject.FindWithTag("Cube");
         center = cube.transform;
         transform.position = (transform.position - center.position).normalized * radius + center.position;
         radius = 2.0f;
     }
     
     void Update () {
         transform.RotateAround (center.position, axis, rotationSpeed * Time.deltaTime);
         desiredPosition = (transform.position - center.position).normalized * radius + center.position;
         transform.position = Vector3.MoveTowards(transform.position, desiredPosition, Time.deltaTime * radiusSpeed);
     }
 }
Vector3.Lerp(StartPos,EndPos,speed)
Woher ich das weiß:Beruf – Ich lehre auf Youtube und auf Udemy Spiele-Erstellung.

Der dritte Parameter ist aber nicht der Speed, lieber OctoMan. Sondern die Zahl t, die von 0 nach 1 wächst um die Lerp zu berechnen. Je schneller die wächst, umso schneller ist der Lerp, aber du kannst nicht einfach „10“ eintragen als „Speer“ da du sonst nur eine Konstante als Ergebnis erhältst.

0
@BoundfoxStudios

Jup haste Recht. Aber gehe selten davon aus, dass nur irgendjemand die Api studiert.

Ja Zeit t zwischen 0 & 1 aka 0 -100%

1

Was möchtest Du wissen?