unity之高通AR研究一

公司就是研究AR的,不过是由公司大佬封装了一个新的sdk,现在想研究一下官方的高通SDK

Paste_Image.png

高通sdk在场景中首先要拖一个ARCamera和一个ImageTarge,并把原始场景中的相机删除,然后在ARCamera中填入key

Paste_Image.png
Paste_Image.png

然后把在高通网站中生成的识别图包放进来,并在ARCamera中启用

再在ImageTarget中选择放入的识别图包和此ImageTarget对应的图包中的某张图片

Paste_Image.png

最后把模型放在ImageTarget下,然后注意调整一下ARCamera的位置

Paste_Image.png

现在运行,拿摄像头取扫描对应的图片就可以出现模型了

我比较感兴趣,想知道它是怎么控制模型消失显现的,看了一下ImageTarget上挂的脚本

Paste_Image.png

在这个脚本中

private void OnTrackingFound()
        {
            Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
            Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);

            // Enable rendering:
            foreach (Renderer component in rendererComponents)
            {
                component.enabled = true;
            }

            // Enable colliders:
            foreach (Collider component in colliderComponents)
            {
                component.enabled = true;
            }

            Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
        }

这个是扫描到识别图时显现模型用的,可以看见,他是把ImageTarget下所有的子物体都激活了,并激活了其碰撞体

而看到下面隐藏的

private void OnTrackingLost()
        {
            Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
            Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);

            // Disable rendering:
            foreach (Renderer component in rendererComponents)
            {
                component.enabled = false;
            }

            // Disable colliders:
            foreach (Collider component in colliderComponents)
            {
                component.enabled = false;
            }

            Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " lost");
        }

就是和上面相反的,丢失识别图时就是隐藏所有子物体和其碰撞体

如果要想更改扫描识别图和丢失识别图所进行的动作,可以在这两个函数里面修改

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容