虚拟摄像机能够经过脚本进行调整。您能够运用它经过将特定的摄像机视图附加到按键甚至创建游戏元从来简化测验。让咱们看看怎么经过 C# 使相机可交互

方针:了解怎么将Cinemachine的虚拟摄像机与C#一起运用,以及怎么经过代码运用其组件。在此示例中,咱们将了解怎么更改相机的定位以瞄准不同的方针,以及在按下某个键时更改镜头的变焦。

目录

拜访电影机按键

更改相机方针

镜头扩大

. 最终

经过脚本拜访虚拟摄像机

Unity 中的大多数内容都能够经过包含正确的[命名空间]来拜访。经过在脚本中增加 cinemachine 命名空间,您将能够拜访其所有实用程序。

【Unity】如何使用Cinemachine和C#制作交互式相机

按键时更改相机方针

  1. 现在咱们有了命名空间,咱们能够拜访虚拟摄像机。让咱们声明咱们的全局变量来标识这一点。这将是一个序列化字段,以便咱们能够经过查看器分配它。

【Unity】如何使用Cinemachine和C#制作交互式相机
2. 让咱们进入编程逻辑的主要部分。

  • 每逢咱们按下某个键时,咱们都想更改相机的方针。

假如您一向重视,您就会知道虚拟摄像机有一个 “查看” 组件,能够使它们瞄准查看器中的给定方针。所以咱们需求…

  • 经过代码拜访“查看”组件。
  • 运用咱们所需方针的转化。

咱们将从方针开始,咱们的新全局变量将解释这一点。

【Unity】如何使用Cinemachine和C#制作交互式相机
3. 咱们将增加的最终一个全局变量是一个布尔值,用于盯梢当时方针方针。

【Unity】如何使用Cinemachine和C#制作交互式相机
由于此示例运用两个方针,因此咱们能够经过仅查看其间一个来简化此操作,默许情况下,当第一个方针未处于活动状况时,咱们知道第二个方针有必要处于活动状况。别担心,咱们稍后会看看这个:)

4. 为了坚持整洁,让咱们创建一个函数来处理 Look Look Look 组件的输入逻辑。

【Unity】如何使用Cinemachine和C#制作交互式相机
我知道这是一个块,但咱们现在要分化它!

  • 假如按下 R 键,咱们会查看第一个方针是否处于活动状况。输入查看将在更新功用中,所以现在不必担心。
  • 假如它处于活动状况,咱们将获取 Look Look 组件并将其定向到 target1。
  • 然后咱们反转布尔变量的值,以便咱们能够在两者之间循环。这发生在两个 if 句子上。

注1:请记住,方针_是_转化,这就是为什么咱们在这里运用它来标识方针。

留意2:假如您乐意,也能够在启动函数中获取Look At组件,可是仅在运用时获取此组件会愈加优化。

  • 不然,假如 — 假如 target1 未处于活动状况,那么咱们获取 Look Look 组件并将其定向到 target2。

5.好的,脚本剩余的就是在更新中运用咱们的输入查看调用切换方针函数。

【Unity】如何使用Cinemachine和C#制作交互式相机
6. 在查看器中分配相应的变量。咱们经过在全局变量上运用 SerializeField 来提供这些字段。

【Unity】如何使用Cinemachine和C#制作交互式相机
在某些情况下,您需求运用更杂乱的结构,例如列表或数组,但此示例十分简略,能够坚持运用方针变量。

结果

当我按R键时,您能够看到方针之间的“看向/瞄准指示器”(黄色方块)开关。

【Unity】如何使用Cinemachine和C#制作交互式相机

镜头扩大

【Unity】如何使用Cinemachine和C#制作交互式相机
你也能够经过简略地修改咱们的代码来做一些十分有趣的事情。让咱们快速浏览一下!

假如我运用视界组件来更改按键的缩放比例,它将如下所示:

【Unity】如何使用Cinemachine和C#制作交互式相机

  • 咱们将缩放(扩大)削减 20 个单位。
  • 它存储在变量中,以便能够重用。
  • 咱们查看FOV(视界)是否小于10,以便咱们能够将其重置为开始时的状况(经过查看器将起始值设置为60)

【Unity】如何使用Cinemachine和C#制作交互式相机

最终

【Unity】如何使用Cinemachine和C#制作交互式相机
我期望您发现这些有价值的信息!重视我以获取更多 Unity 开发文章!:)

博主归于自学型选手,假如你也是Unity初学者,欢迎加入我的群聊进行合作沟通:618012892