【问题标题】:Issue: Unity Project - Drone-Simulation : Change camera perspective (C#)问题:Unity Project - Drone-Simulation:更改相机视角(C#)
【发布时间】:2021-10-04 14:58:52
【问题描述】:

为了我的大学研究,我目前正在通过 Unity 构建一个模拟环境(包括必须飞过工厂的无人机)。

我做了什么:

  • 创建的环境
  • 实现了无人机(包括作为模板的控制器脚本和引擎脚本)
  • 创建了一个带有“按钮”的用户界面,这些按钮与脚本方法“FlyToPosition”相连
  • 点击想要的按钮(着陆站),无人机起飞,飞向目标并着陆。
  • 通过相机脚本的主相机跟随无人机整个游戏模式

我要另外编辑的内容:

  • 能够通过选择 UI 中的下拉菜单来更改相机视角(例如向下看的 POV 相机)
  • 能够飞到上层。控制器脚本使无人机首先起飞,这表明大厅天花板发生了碰撞。我的想法:在大厅外建一个站,先飞,然后起飞到着陆位置的正确高度。

我需要帮助来创建所需的脚本。 如果你能联系我,我会很高兴解决我的问题。我在团队,缩放等方面。 如果您认为您可以提供帮助,我会将我当前的 C#-Scripts 和 Unityproject-file 发送给您。

期待您的帮助。 再见!

【问题讨论】:

  • 欢迎来到 Stack Overflow。请阅读asking questions。要求人们通过 Stack Overflow 与您联系是不合适的。

标签: unity3d user-interface drone


【解决方案1】:

您可以在无人机上安装更多摄像头,将它们设置到您想要的位置。然后在代码中只为它们提供参考,并根据一些按钮设置选择的相机处于活动状态。 假设您有 3 个摄像头:

public GameObject cam1;
public GameObject cam2;
public GameObject cam3;

通过inspector附加相应的相机对象,然后根据一些输入分别使用setActive。我为你写了一个简单的函数,只需调用 activateCam(nr);其中 nr 是您的相机编号,并且已经完成。

private void activateCam(int nr)
{ 
  switch (nr)
    {
    case 1:
      cam1.setActive(true);
      cam2.setActive(false);
      cam3.setActive(false);
        break;
    case 2:
      cam1.setActive(false);
      cam2.setActive(true);
      cam3.setActive(false);
        break;
    case 3:
      cam1.setActive(false);
      cam2.setActive(false);
      cam3.setActive(true);
        break;
    }
}

您唯一需要弄清楚的是您希望用户如何切换摄像头。无论是按钮还是按键,都由您决定,只需使用此功能即可。 我希望它会有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多