Hololens 收藏本版 已有5人收藏 +发表新主题
查看: 39727|回复: 3
打印 上一主题 下一主题

[分享] Unity World anchor 空间锚

[复制链接]

[分享] Unity World anchor 空间锚

yeziwang 发表于 2016-6-29 17:17:33 浏览:  39727 回复:  3 只看该作者 复制链接
命名空间: UnityEngine.VR.WSA
类型: WorldAnchor
World Anchor为应用程序提供了一种能够将物体保留在特定位置和旋转状态的方法。这保证了GameObjects的稳定性,同时提供了后续在真实世界中保持全息对象位置的能力。也就是说,可以为全息物体来添加空间锚点,这样,在后续步骤中就能将全息物体准确恢复到它原来的位置。
添加空间锚
添加空间锚,在GameObject上访问AddComponent<WorldAnchor>()并在真实世界转换你需要的空间锚点。
移除空间锚
如果你不想再继续将GameObject固定在特定位置,同时在场景中也不想移动它,那么可以访问调用Destroy来删除WorldAnchor组件,代码如下:
如果你想要在场景中移动对象,需要访问调用DestroyImmediate来删除空间锚组件,将会立即移除,代码如下:
移动锚定的对象
当GameObject已附加上空间锚组件,它就不能被移动。如果你需要移动对象,那么你必须:
1. 立刻销毁删除空间锚组件
2. 移动GameObject
3.在GameObject上添加一个新的空间锚
处理定位变化
有些时候,空间锚可能不能在世界中被定位到。如果这种情况发生,Unity将不能更新锚定对象的转变。在应用运行时,这些可能会发生变化。不及时处理定位的变化,可能会导致对象不会出现在准确的位置上。
为了追踪可定位能力的变化,需要采取如下做法:
1. 订阅OnTrackingChanged事件
2. 处理此事件
订阅OnTrackingChanged事件
当底层空间锚在被定位和不定位状态之间变化这个事件将被启用访问。
处理OnTrackingChanged事件
代码如下:
设定明确初始状态
有时空间锚能够立即被定位到。这种情况下,给对象添加空间锚后,空间锚组件的isLocated属性值将会被设为true,这个时候OnTrackingChanged事件将不会被触发。因此,在添加空间锚组件后,推荐立即使用初始的isLocated状态去调用OnTrackingChanged事件,代码如下:
分享至:
| 人收藏
回复

使用道具 举报

该用户从未签到

沙发
重庆生活网l 发表于 2017-10-25 18:54:49 只看该作者
不错,顶的人不多啊,快点继续













第五代QQ机器人QQ群机器人论坛QQ机器人智能客服机器人QQplus机器人QQ群互联机器人..联系QQ800829129 QQ群28352615
回复 支持 反对

使用道具 举报

该用户从未签到

板凳
重庆生活网l 发表于 2017-10-26 17:37:35 只看该作者
牛牛牛牛呀













第五代QQ机器人QQ群机器人论坛QQ机器人智能客服机器人QQplus机器人QQ群互联机器人..联系QQ800829129 QQ群28352615
回复 支持 反对

使用道具 举报

  • TA的每日心情

    2019-3-25 21:42
  • 签到天数: 2 天

    [LV.1]初来乍到

    地板
    wj7636 发表于 2019-4-20 16:30:35 只看该作者
    如果用一个词来形容我对您的感受的话,我觉得那就是真诚!伸缩门 http://www.ssmdd.com
    回复 支持 反对

    使用道具 举报

    *滑动验证:
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Copyright © 2013-2017 ARinChina-增强现实中国技术论坛   All Rights Reserved.