Ich habe einen Controller zum Öffnen von Türen in einem TopDown-Shooter erstellt.Unity - Zerstöre den DoorController nach Beendigung der Aufgabe
Ich rotiere Drehpunkte um ihre lokale Y-Achse, um die Türobjekte zu öffnen. Die Türen sollten offen bleiben, daher brauche ich den Controller und das Controller-Objekt nicht mehr. Ich möchte es nach Beendigung seiner Arbeit zerstören.
Mein Skript sieht folgendermaßen aus:
public class DoorController : MonoBehaviour
{
public Transform pivotLeftTransform; // the left pivot point
public Transform pivotRightTransform; // the right pivot point
int openAngle = 90; // how far should the door open up?
bool startOpen = false; // start opening?
float smooth = 2; // smooth rotation
private void OnTriggerEnter(Collider other)
{
if (other.gameObject.tag == "Player")
{
startOpen = true; // when the Player triggers, start opening
}
}
void Update()
{
if (startOpen)
{
OpenDoor(pivotLeftTransform, openAngle);
OpenDoor(pivotRightTransform, -openAngle);
if (pivotLeftTransform.localRotation.y == openAngle && pivotRightTransform.localRotation.y == -openAngle) // when the doors are rotated, destroy this object
{
Destroy(gameObject);
}
}
}
private void OpenDoor(Transform pivotTransform, int rotationAngle)
{
Quaternion doorRotationOpen = Quaternion.Euler(0, rotationAngle, 0); // desired door rotation
pivotTransform.localRotation = Quaternion.Slerp(pivotTransform.localRotation, doorRotationOpen, smooth * Time.deltaTime); // rotate the door to the desired rotation
}
}
Meine Frage ist, wie kann ich das Objekt zu zerstören. Mein Code
if (pivotLeftTransform.localRotation.y == openAngle && pivotRightTransform.localRotation.y == -openAngle)
scheint nicht zu funktionieren. Nachdem der Drehpunkt um 90 oder -90 Grad gedreht wurde, bleibt die Aussage weiterhin falsch. Ich versuchte auch
pivotTransform.rotation.y
, aber es funktioniert auch nicht. Welche Rotation muss ich durchlaufen?
Danke.
Vielen Dank für Ihre Antwort! Leider hat nichts von diesen Vorschlägen funktioniert :( – Garzec