【发布时间】:2015-10-09 16:10:13
【问题描述】:
现在我有 2 个摄像头:主摄像头显示枪的正常状态,第二个摄像头连接到枪上(枪是主摄像头的子摄像头),切换时它会通过枪并增加视野。
这是一个更好理解的视觉效果:
现在,如果我只是打开第二个摄像头并关闭主摄像头,这将非常有效,但它不是很理想。每个场景应该只有 1 个摄像头。
所以我想调整相机的位置以通过范围查看并手动减小视野。所以我写了以下脚本:
[RequireComponent(typeof(Camera))]
public class Zoom : MonoBehaviour {
private Transform CameraTransform = null;
public Transform ZoomedTransform;
private bool zoomed = false;
void Start () {
CameraTransform = Camera.main.transform;
}
// Update is called once per frame
void Update () {
if (Input.GetKey (KeyCode.LeftShift))
{
CameraTransform.position = Vector3.Lerp (
CameraTransform.position,
CameraTransform.position + ZoomedTransform.position,
5f * Time.deltaTime
);
CameraTransform.Rotate(ZoomedTransform.rotation.eulerAngles);
}
}
}
问题在于它不起作用:当我按下变焦按钮时,相机以光速穿过场景,很难准确判断发生了什么。
谁能告诉我我做错了什么?我认为这与父子关系有关,但即使我尝试使用静态值,我似乎也无法复制正确的解决方案。
层次结构:
【问题讨论】:
标签: unity3d camera zooming lerp