用鼠标旋转3D刚体对象(将照相机作为子对象)

时间:2018-09-27 18:49:15

标签: unity3d 3d mouse

我正在使用相机(作为儿童)旋转3D对象,并使用鼠标和键盘旋转刚体。我正在使用以下代码片段:

Move these files 
FROM HERE...
  C:\Users\myUser\Downloads\Decommissioned-2 (backup)\
TO HERE...
  C:\Users\myUser\Documents\Visual Studio 2015\Projects\SSRS\Project_ssrs2016\Decommissioned-2\

ADDED FILES TO PROJECT
* Daily Yum Products Daily Traffic Report.rdl
* Load Planning Worksheet.rdl
* Temporary Employees.rdl
* Weekly Yum Products Daily Traffic Report.rdl

我可以用鼠标移动3D对象(和摄影机),但是当我向左或向右看时,摄影机会稍微倾斜一点。我想像FPS一样用鼠标旋转,但是要用刚体旋转(而不是用transform.euler ....)。有谁知道一种解决方案,以使相机与鼠标完全一致地移动(不打滑对角线)?

我将代码更改为:

private void Update()
    {

        float rh = Input.GetAxisRaw("Mouse X");
        float rv = Input.GetAxisRaw("Mouse Y");
        float rx = Input.GetAxisRaw("Roll");

        rotInput = new Vector3(rv, rh, rx);
        Thrust();  //Move forward and backward

    }

    private void FixedUpdate()
    {
        Moving.MoveInput(rotInput);
    }

但是现在它一直在旋转,我无法停止它。我仍然使用ridigbody。有解决方案,所以当我停止移动鼠标时,鼠标可以正常工作并且相机停止旋转吗?

1 个答案:

答案 0 :(得分:0)

您不需要滚动。这就是对角线倾斜相机的原因。将rotInput = new Vector3(rv, rh, rx);的z设置为0,它应该可以正常工作。