0
我有一个轨道摄像机,围绕一个物体摆动以展示所讨论的物体,因为物体相当大,很容易失去位置并希望回到起始位置,我想做这通过一个按钮。将摄像机从当前位置移动到一个特定的位置,并保持一致?
我也希望这样的过渡不会让人感到震惊,它是当前位置和指定位置之间的平稳过渡。我意识到这是一个interp相关的问题,我不知道从哪里开始。
我的基本转换代码到目前为止是
public Camera MainCamera;
public void UserClickedCameraResetButton()
{
MainCamera.transform.position = new Vector3(106, 68, 15);
MainCamera.transform.rotation = new Vector4(40, 145, 0);
}
像往常一样,非常感谢
代码将会解决我的问题更新。
public Camera MainCamera;
public GameObject TargetPosition;
public int speed = 2;
bool camera_move_enabled = false;
void Update()
{
if (camera_move_enabled)
{
MainCamera.transform.position = Vector3.Lerp(transform.position, TargetPosition.transform.position, speed * Time.deltaTime);
MainCamera.transform.rotation = Quaternion.Lerp(transform.rotation, TargetPosition.transform.rotation, speed * Time.deltaTime);
}
}
public void UserClickedCameraResetButton()
{
TargetPosition.transform.position = new Vector3(-106.2617f, 68.81419f, 14.92558f);
TargetPosition.transform.rotation = Quaternion.Euler(39.7415f, 145.0724f, 0);
camera_move_enabled = true;
}
您可以添加一个布尔检查camera_move_enable'的'状态,我需要检查什么'Targetposition'是所有关于为这是目前抛出一些错误。 –
'Targetposition'是一个gameobject。制作另一台相机并将其设置为目标位置,以便您可以看到最终相机视图的外观和调整方式。 – Stalker
得到它的工作,不得不将'vector4'更改为'quaternion.euler'将更新OP与工作代码。现在唯一的问题是布尔解决一个点击式解决方案,此时你必须点击并按住,它会将凸轮拉回到位置之前。 –