C# Unity不会通过eulerangles移动对象
脚本打开门,unity调用该函数,但我没有看到任何错误和效果。 你知道哪里有问题吗?我尝试使用Delta.time,而不是将经过的时间和完成的时间分开C# Unity不会通过eulerangles移动对象,c#,unity3d,transform,C#,Unity3d,Transform,脚本打开门,unity调用该函数,但我没有看到任何错误和效果。 你知道哪里有问题吗?我尝试使用Delta.time,而不是将经过的时间和完成的时间分开 public class OpenDoor : MonoBehaviour { private float DoorOpenAngle = 90.0f; public bool open = false; private Vector3 defaultRot; private Vector3 openRot;
public class OpenDoor : MonoBehaviour
{
private float DoorOpenAngle = 90.0f;
public bool open = false;
private Vector3 defaultRot;
private Vector3 openRot;
float ElapsedTime;
float FinishTime;
void Start()
{
defaultRot = transform.eulerAngles;
openRot = new Vector3(defaultRot.x, defaultRot.y - DoorOpenAngle, defaultRot.z);
float ElapsedTime=0f;
float FinishTime=1.5f;
}
void Update()
{
if (open)
{
ElapsedTime += Time.deltaTime;
transform.eulerAngles = Vector3.Slerp(defaultRot, openRot, ElapsedTime / FinishTime);
}
}
public void Unlockdoors()
{
open = true;
}
}
尝试使用gameObject.transform而不仅仅是transform…不,这不是说你的门已经处于90度了吗?不要使用更新来设置门的动画。使用协同程序或动画。嗯,奇怪,我知道你知道你的东西@derHugo,但就在前几天,你在一个教程中运行了一些代码,直到我把gameoject放到转换中,它才起作用。。。正如我所说的,总有一天我会用gameObject向下追踪它。变换不仅仅是变换…不,这不是说你的门已经成90度了吗?不要用更新来设置门的动画。使用协同程序或动画。嗯,奇怪,我知道你知道你的东西@derHugo,但就在前几天,你在一个教程中运行了一些代码,直到我把gameoject放到转换中,它才起作用。。。正如我所说的,总有一天我会找到它的