如何在 C# 中制作相机缩放脚本以实现统一?

问题描述 投票:0回答:1

我想要一个 C# 脚本,所以当我按住右键时,它会放大一点,当你停止按住右键时,它会返回到原来的位置。

c# unity-game-engine camera
1个回答
0
投票

您首先要存储原始相机的 z 距离。 (我假设你希望它沿 z 方向前进)。然后你会想要一个浮动的书本缩放量被按下。 (缩放时增大,不单击时减小)。 还有一个目标 z,所以不会走得太远

public float startZ;
public float targetZ;
public float zoomInSpeed;
public float zoomOutSpeed;

float heldDownTime;
float originalZ;
void Start()
{
    startZ = transform.position.z;
}
void Update()
{
    if (Input.GetKey(KeyCode.Mouse0))
    {
         heldDownTime += Time.deltaTime * zoomInSpeed;
    }
    else
    {
         heldDownTime -= Time.deltaTime * zoomOutSpeed;
         heldDownTime = Mathf.Clamp(heldDownTime, 0, Mathf.Infinity);
    }
    float smoothed = System.Math.Tanh(heldDownTime);
    Vector3 pos = transform.position;
    transform.position = new Vector3(pos.x, pos.y, startZ + smoothed * (targetZ - startZ));
}

我基本上按住时间,然后将其平滑,这样它就不会缩放到很远的位置。

如果您遇到任何错误,请在评论中告诉我!

© www.soinside.com 2019 - 2024. All rights reserved.