如何在 Unity / C# 中访问 Cinemachine 的相机距离值?

Posted

技术标签:

【中文标题】如何在 Unity / C# 中访问 Cinemachine 的相机距离值?【英文标题】:How to access the value of cinemachine's camera distance in Unity / C#? 【发布时间】:2021-10-11 03:44:00 【问题描述】:

我现在正在使用 Unity/C#,并且一直无法在脚本中访问 CinemachineVirtualCamera 的相机距离值。我想要做的是改变身体部分的相机距离值。

首先,如何访问这个游戏对象中的 CinemachineVirtualCamera 组件? MoveScript 是我附加到玩家游戏对象的,我想根据玩家的移动缩小相机。由于我正在制作的游戏很小,我不会制作其他.cs文件。

我写的

public class MoveScript: MonoBehaviour

    private GameObject camObj;
    void Start()
    
        camObj = GameObject.Find("Vertical Follow Camera");
        camObj.GetComponent<CinemachineVirtualCamera>(); // <- but I get error saying, The type or namespace name 'CinemachineVirtualCamera' could not be found 

    

我还阅读了this document,我认为m_CameraDistance 是我正在寻找的,但我如何才能访问该值?

【问题讨论】:

【参考方案1】:

试试这个,别忘了提到命名空间

public class MoveScript: MonoBehaviour

  private CinemachineVirtualCamera virtualCamera;
  private GameObject camObj;
  void Start()
  
      camObj = GameObject.Find("Vertical Follow Camera");
      virtualCamera = camObj.GetComponent<CinemachineVirtualCamera>();
      float f = virtualCamera.m_CameraDistance;

   
 

【讨论】:

以上是关于如何在 Unity / C# 中访问 Cinemachine 的相机距离值?的主要内容,如果未能解决你的问题,请参考以下文章

Unity、C#、SocketIO:在回调/动作中不可访问的变量、对象、方法

如何用Lua来访问Unity 控件的属性

在 Directory<system.String, system.Object> 中按键访问值 - C# Unity Dictionary

从字典的 JSON 数组访问键/值 C#,Unity [重复]

Unity 中的 GetComponent (C#)

Unity:列表变量数组。如何在 C# 中正确声明它