unity3d - 我可以在空中放置一个物体吗 - 360 度角(随机位置)而不点击而不是在统一 Vuforia 半空中找到平面
问题描述
我正在尝试在半空中展示我的 3D 对象。目前我的对象显示在点击事件上,但我不想要点击事件。我只希望对象显示在半空中的随机位置。
解决方案
如果我把你的问题分成两部分,那么,
- Vuforia 使用“Anchor input Listener Behavior”来接收空中锚点的输入。我不确定它是否会在没有点击事件的情况下工作。
您必须单击以锁定空中目标,您可以通过显示弹出“单击开始”来将其游戏化。然而,总有一条出路。如果你通过PlaneManager.cs类然后你找到一个方法“PlaceObjectInMidAir”,你可以仔细构建逻辑并在Update方法中调用以下几行但一次。
if (TrackingStatusIsTrackedAndNormal)
{
this.contentPositioningBehaviour.AnchorStage = this.midAirAnchor;
this.contentPositioningBehaviour.PositionContentAtMidAirAnchor(midAirTransform);
UtilityHelper.EnableRendererColliderCanvas(this.midAirAugmentation, true);
this.midAirAugmentation.transform.localPosition = Vector3.zero;
UtilityHelper.RotateTowardCamera(this.midAirAugmentation);
}
- 要以 360 度随机生成游戏对象,您可以使用“Random.insideUnitSphere”在随机位置使用实例化方法 [参见链接] https://docs.unity3d.com/ScriptReference/Random-insideUnitSphere.html 然后将该对象设为子对象半空中的 Achor “Anchor_MidAir”。
希望我的回答能给你一个开始的推动力。祝你好运!
推荐阅读
- c# - 通用发布事件类
- laravel - 如何在 Eloquent 模型中搜索不区分大小写
- ajax - django rest framework import csv thorws requried Id error
- node.js - Nodejs 中的存储库模式
- angular - tsconfig 搞砸了 node_modules 导入
- java - 如何从 JavaFX 应用程序的画布区域创建 PDF 或 SVG 文件?
- c# - BinaryFormatter Serialize 在序列化期间排除 datatable.defaultview.sort 属性
- javascript - 滚动时内容跳转
- multithreading - Javafx Stage.show() 稍后打开
- javascript - 使用可选值过滤集合