unity3d - 用于 Vuforia Unity 的 DeployStageOnce 脚本
问题描述
我正在 Unity Vuforia 中进行地平面项目。在最新版本的 Vuforia 中,有一个预定义的复选框,而不是导入单独的 DeployStageOnce 脚本。我想要单独的 DeployStageOnce 脚本。我想研究它并知道它是如何工作的。我在任何地方都找不到脚本。有人有吗?还是链接?如果有请提供。
非常感谢!
解决方案
using System;
using UnityEngine;
using Vuforia;
public class DeployStageOnce : MonoBehaviour {
public GameObject AnchorStage;
private PositionalDeviceTracker _deviceTracker;
private GameObject _previousAnchor;
public void Start ()
{
if (AnchorStage == null)
{
Debug.Log("AnchorStage must be specified");
return;
}
AnchorStage.SetActive(false);
}
public void Awake()
{
VuforiaARController.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted);
}
public void OnDestroy()
{
VuforiaARController.Instance.UnregisterVuforiaStartedCallback(OnVuforiaStarted);
}
private void OnVuforiaStarted()
{
_deviceTracker = TrackerManager.Instance.GetTracker<PositionalDeviceTracker>();
}
public void OnInteractiveHitTest(HitTestResult result)
{
if (result == null || AnchorStage == null)
{
Debug.LogWarning("Hit test is invalid or AnchorStage not set");
return;
}
var anchor = _deviceTracker.CreatePlaneAnchor(Guid.NewGuid().ToString(), result);
if (anchor != null)
{
AnchorStage.transform.parent = anchor.transform;
AnchorStage.transform.localPosition = Vector3.zero;
AnchorStage.transform.localRotation = Quaternion.identity;
AnchorStage.SetActive(true);
}
if (_previousAnchor != null)
{
Destroy(_previousAnchor);
}
_previousAnchor = anchor;
}
}
推荐阅读
- java - While 循环创建永无止境的输入循环
- apache-spark - Spark 中的 PDF 文本
- google-chrome-headless - 从使用 Headless Chrome 创建的 PDF 中删除时间戳和页面 URL
- powerbi - 向下钻取百分比计算调整到上下文 - 日期/日历
- python - 无法识别 python 脚本中的 pip 安装
- r - 在 R 中的多列中过滤值
- react-native - React Native with Expo:如何使用 .env.local 配置文件?
- python - 控制在第二次迭代中跳过该函数。为什么?
- python - Python 3 字符串是 Unicode 字符串,而不是字节数组
- rust - 在创建该类型的线程局部变量的闭包中“使用来自外部函数的类型变量”