【发布时间】:2019-10-16 22:11:24
【问题描述】:
我知道,关于这个错误总是有很多问题,但是我没有成功地用以前的答案解决它......
所以,请让我解释一下。
我正在使用 Hololens 技术。最近,我从 HoloToolKit 更新到了 MRTK V2(微软和社区提供的新 SDK)。我的应用与 HoloToolKit、Unity 和 2017.4 配合使用。我更新了 MRTKv2 和 2019.2(推荐)。
我有一些使用相机位置的脚本。在我之前的应用程序中,Camera 是 BiCamera (GameObject),Basic (GameObject) 的子级。我的 BiCamera 被标记为 MainCamera。现在,我的相机是 Main Camera(两个单词之间有一个空格),标记为 MainCamera,MixedRealityPlayspace 的子级。该相机由 MRTKv2 提供。我无法更改设置。
所以,当我处于播放模式时,我会看到这条黄色消息:
The referenced script on this Behaviour (Game Object 'Main Camera') is missing!
当我移动我的主摄像头以模拟用户的行走(Hololens = 增强现实)时,我会以红色显示这条消息:
NullReferenceException: Object reference not set to an instance of an object
TextSpeedUI.Update () (at Assets/Scripts/TextSpeedUI.cs:23)
我认为第二条消息是链接到第一条的...我的脚本TextSpeedUI需要camera.transform来计算步行速度(其实不是直接的,他从另一个GameObject中找到公共变量,但是这个GameObject需要Camera.transform )。
另一个选项与 MRTK 提供的 GameObject Main Camera 相关联,因为当我选择此 GameObject 时,我缺少脚本。一条消息说我必须修复编译错误...但也许这是结果而不是起源...我迷路了。
TextSpeedUI.cs 23
if (sd.isActiveAndEnabled && sd.Steps.Count > 4)
{
xzSpeed = (sd.Steps[sd.Steps.Count - 1].localMinPosition - sd.Steps[sd.Steps.Count - 4].localMinPosition) / ((sd.Steps[sd.Steps.Count - 1].t - sd.Steps[sd.Steps.Count - 4].t));
txt.text = (xzSpeed.magnitude * 3.6).ToString("0.##"); // speed in km/h
}
sd 来自公共 StepDetector sd;这是我的脚本 TextSpeedUI.cs 的开头
而我的脚本 StepDetector.cs 调用 public DataManager dm;
在我的 DataManager.cs 脚本中,我在开头调用:
public Camera Cam { get; private set; }
在 void 开始:
Cam = Camera.main;
非常感谢
【问题讨论】:
标签: mrtk