我有一台可以用(W,A,S,D)键控制它的相机...
我想做的是,当鼠标左键单击(“ Fire1”)时,摄像机会动态返回到第一个位置。
可以用Mecanim做到这一点并创建一个动态动画文件来做到这一点吗?
那是我的代码:
void Update ()
{
if (Input.GetKey(KeyCode.W))
{
Cam.transform.Rotate (0, 0, 2);
}
if (Input.GetKey(KeyCode.S) )
{
Cam.transform.Rotate (0, 0, -2);
}
if (Input.GetKey(KeyCode.D))
{
Cam.transform.Rotate (0, 2, 0);
}
if (Input.GetKey(KeyCode.A))
{
Cam.transform.Rotate (0, -2, 0);
}
我的摄影机开始时的位置和旋转角度是(0,0,0),但是当我控制摄影机时,这些参数会发生变化,因此我希望当我按下鼠标左键时,我的摄影机可以动态返回到第一个位置(0,0,0)按钮...
就像是:
if (Input.GetButtonDown("Fire1"))
{
Cam.GetComponent<Animation> ().Play ();
}
最佳答案
除了动画之外,您还可以使摄像机运动平滑:
将以下变量添加到脚本中,第一个变量用于控制所需的平滑度:
public float smoothTime = 0.2f;
private Vector3 velocity = Vector3.zero;
然后:
if (Input.GetButtonDown("Fire1")) {
Vector3 targetPosition = new Vector3(0,0,0);
Cam.transform.position = Vector3.SmoothDamp(Cam.transform.position, targetPosition, ref velocity, smoothTime);
}