我有一台可以用(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);
}

10-08 15:23