2016-03-02 97 views
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; 
} 

回答

2

试试这个,设置你的变换位置和旋转到目标位置的对象。由于转换必须在多个框架上完成,因此您必须将其置于更新方法之下。您可以设置一个变量来启用或禁用相机移动。只需更改目标位置并启用相机移动即可移动相机。

public GameObject Targetposition; 
public bool camera_move_enabled; 

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, 68, 15); 
    Targetposition.transform.rotation = new Vector4(40, 145, 0); 
    camera_move_enabled = true; 
} 

在转换后禁用camera_move_enabled。将速度值(浮点)更改为更快/更慢的转换。

我也是新来团结,这可能不是最好的解决办法:)

+0

您可以添加一个布尔检查camera_move_enable'的'状态,我需要检查什么'Targetposition'是所有关于为这是目前抛出一些错误。 –

+0

'Targetposition'是一个gameobject。制作另一台相机并将其设置为目标位置,以便您可以看到最终相机视图的外观和调整方式。 – Stalker

+0

得到它的工作,不得不将'vector4'更改为'quaternion.euler'将更新OP与工作代码。现在唯一的问题是布尔解决一个点击式解决方案,此时你必须点击并按住,它会将凸轮拉回到位置之前。 –

相关问题