【问题标题】: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 发送给您。
期待您的帮助。
再见!
【问题讨论】:
标签:
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;
}
}
您唯一需要弄清楚的是您希望用户如何切换摄像头。无论是按钮还是按键,都由您决定,只需使用此功能即可。
我希望它会有所帮助:)