我编写了一个用于在 TopDown-Shooter 中打开门的控制器。
我围绕它们的本地 Y 轴旋转枢轴点以打开门对象。门应该保持打开状态,所以我不再需要 Controller 和 Controller 对象了。我想在完成它的工作后摧毁它。
我的脚本看起来是这样的:
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
}
}
我的问题是,我怎样才能销毁对象。我的代码
if (pivotLeftTransform.localRotation.y == openAngle && pivotRightTransform.localRotation.y == -openAngle)
似乎不起作用。在将枢轴点旋转到 90 或 -90 度后,该语句仍然保持错误。我也试过
pivotTransform.rotation.y
但它也不起作用。我需要通过哪个轮换?
谢谢。