Ich habe einen Planeten und einen Mond. Der Mond wird einem Dummy-Objekt zugeordnet, das sich in der Mitte des Planeten befindet (im Wesentlichen 0,0,0). Der Mond kann sich frei um den Planeten drehen. Es sollte eine konstante Entfernung vom Planeten halten.Wie drehe ich ein Objekt an eine bestimmte Position um ein anderes Objekt herum? (Im Wesentlichen umkreisen bis zur angegebenen Position)
Ich habe einen bestimmten Punkt im Sinn, dass ich den Mond drehen möchte, obwohl er aufrecht bleiben muss. Das heißt, der Mond sollte beständig "aufwärts" relativ zur Oberfläche des Planeten zeigen. Grundsätzlich ist es wie ein "moveTo" -Skript, nur in meinem Fall sollte sich der Mond um den Planeten "drehen", bis er den Punkt erreicht, den ich suche.
Hier ist, was ich bisher habe, obwohl ich nicht die richtige Logik arbeiten können, zu verwenden:
Vector3 targetDir = moveToPos - moon.transform.position;
float angle = Vector3.Angle(targetDir, moon.transform.up);
dummy.transform.RotateAround (moveToPos, moon.transform.up, angle);
Bin ich denke an das richtig? Sobald ich das funktioniere, möchte ich den Mond verschiedene Positionen einnehmen und den Mond auf der Oberfläche des Planeten drehen lassen. Ich habe nach etwas ähnlichem gesucht, kann aber nicht finden, wonach ich suche.
Der in diesem Screenshot angezeigt Marker „hier drehen“ sollte sagen, aber das ist im Wesentlichen, was meine Szene wie folgt aussieht:
Können Sie einen Screenshot Ihrer Hierarchie zeigen, nur so ist es für Leser klar, was die Situation ist? Ich weiß vielleicht, wie man sich einer Lösung nähert, aber ich möchte nicht auf falschen Annahmen beruhen. – Serlite
Danke, dass du Serlite hilfst, ich aktualisiere nur das OP mit Screenshot. – Valerie
In Ordnung. Eine zusätzliche Klarstellung - wenn Sie sagen, dass der Mond immer nach oben gerichtet sein sollte, klingt es, als ob Sie "hoch" relativ zur Oberfläche des Planeten meinen. Ist das richtig? Oder meinst du "oben" im Weltraum? – Serlite