美文网首页Unity之C#
unity之高通AR研究一

unity之高通AR研究一

作者: 楚天月 | 来源:发表于2017-06-13 11:35 被阅读0次

    公司就是研究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");
            }
    

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

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

    相关文章

      网友评论

        本文标题:unity之高通AR研究一

        本文链接:https://www.haomeiwen.com/subject/lhldqxtx.html