【问题标题】:[Unity]How to rotate the camera automatically without dragging?[Unity]如何在不拖动的情况下自动旋转相机?
【发布时间】:2018-02-14 21:03:24
【问题描述】:

我英语不好。对不起。

我的问题是 "相机如何不拖拽就自动旋转?"

我使用拖动实现了它直到相机旋转。

但我不知道如何让我的相机随着鼠标的移动而旋转。

【问题讨论】:

  • 您的代码目前是什么样的?你能告诉我们你使用拖动旋转相机的部分吗?
  • 使用inputManager.cs输入拖拽并传到followCamera.cs 谢谢
  • 你说你想自动旋转而不用拖动,使用鼠标。那么您的意思是您希望旋转始终根据鼠标移动处于活动状态?或者你的意思是你应该能够激活,然后当激活时旋转根据鼠标移动移动?
  • 这正是我想要的。如果可能的话,我也想拥有后者的功能。像相机锁定按钮
  • 谢谢你用英语表达我想说的话。

标签: c# unity3d


【解决方案1】:

您可以创建一个布尔值来检查相机旋转是否被激活,然后有一个函数在收到输入时分别设置该 false/true。

在您的输入管理器中进行以下操作:

public bool isRotating;
void ToggleIfShouldRotate(){
    isRotating = !isRotating;
}

!IsRotating 总是与 isRotating 相反。

您还需要决定哪个键应该激活或停用旋转,您可以使用 Keycode 变量来做到这一点。

[SerializeField]
KeyCode ToggleRotatingKey = KeyCode.Mouse0;

我已将其默认设置为 Mouse0,我相信它是鼠标左键。您可以在检查器或代码中更改值。

现在在 Update 方法中使用这个键来打开和关闭旋转,就像这样。

void Update()
{
    if (Input.GetKeyDown(ToggleRotatingKey))
    {
        ToggleIfShouldRotate();
    }
}

编辑:

现在在您的旋转脚本中,只需检查 InputManager 中的布尔值 isRotating。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    相关资源
    最近更新 更多