ARFoundation入门——锚点ARAnchor(Android)

开发环境

Unity:2021.1.14flc1
导入Package:
AR Foundation:4.1.7
ARCore XR Plugin:4.1.7

ARAnchors(AR锚点)

锚的一个典型用例是在物理世界中放置虚拟内容。
你可以将虚拟对象锚定到特定的可追踪对象,以确保即使设备四处移动,您的虚拟对象与可追踪对象之间的关系也能保持稳定。这意味着,当你将虚拟 Android 小雕像放置在桌面上,如果 ARFoundation稍后调整与桌面相关联的几何平面的姿势,那么 Android 小雕像仍会出现在桌子顶部。

对可跟踪类型有疑惑的可以参考ARFoundation入门——AR射线检测(Android)中对TrackableType类型的介绍

增加或删除锚点

要添加新的锚,只需使用AddComponent将ARAnchor组件添加到任何游戏对象。也可以间接创建锚点,例如通过加载包含已保存锚点的ARWorldMap。

使现有的内容成为锚点:

void AnchorContent(Vector3 position, GameObject content)
{
    // Add an anchor to your content
    content.AddComponent<ARAnchor>();
}

将预制件实例化为锚点:

void AnchorContent(Vector3 position, GameObject prefab)
{
    // Create an instance of the prefab
    var instance = Instantiate(prefab, position, Quaternion.identity);

    // Add an ARAnchor component if it doesn't have one already.
    if (instance.GetComponent<ARAnchor>() == null)
    {
        instance.AddComponent<ARAnchor>();
    }
}

也可以创建附着到平面的定位。AttachAnchor方法可以做到这一点,将锚定附着到平面的典型用例是在平面上放置虚拟内容。建议使用AttachAnchor创建锚点,然后将你的内容作为锚点的子对象。

public ARAnchor AttachAnchor(ARPlane plane, Pose pose);

要移除锚,就销毁ARAnchor组件(或其游戏对象)。

public bool RemoveAnchor(ARAnchor anchor)

一些说明

对ARFoundation的使用学习可以参考unity官网的文档:http://docs.unity3d.com/Packages/com.unity.xr.arfoundation@4.1/manual/index.html。也可以到ARCore的官网:https://developers.google.cn/ar对这部分SDK的功能和环境配置有个更好的了解。
(两个网站的中文翻译我觉得都挺令人头疼的,看不懂的部分地方建议可以用英文文档理解一下。)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值