• Vuforia AR篇(三)— AR模型出场效果



    前言

    例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


    一、AR模型出场

    创建ARCamera和ImageTarget
    在这里插入图片描述

    导入一个带动画的模型
    在这里插入图片描述

    在这里插入图片描述
    复制下面的脚本
    在这里插入图片描述
    然后改名成下面DeathObserverEventHandler
    在这里插入图片描述
    找到下面的2个方法
    在这里插入图片描述
    重写下面的2个方法

        protected virtual void OnTrackingFound()
        {
            // if (mObserverBehaviour)
            //     SetComponentsEnabled(true);
            //
            //
            //
            // OnTargetFound?.Invoke();
            GameObject death = Instantiate(deathPrefab, transform, true);
            death.name = "Death";
            death.transform.position = transform.position;
        }
    
        protected virtual void OnTrackingLost()
        {
            // if (mObserverBehaviour)
            //     SetComponentsEnabled(false);
            //
            //
            // OnTargetLost?.Invoke();
            GameObject death = GameObject.Find("Death");
            if (death != null)
            {
                Destroy(death);
            }
    
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    然后挂上脚本
    在这里插入图片描述

    二、AR出场特效

    导入特效素材
    在这里插入图片描述
    在这里插入图片描述
    添加特效代码

        protected virtual void OnTrackingFound()
        {
            // if (mObserverBehaviour)
            //     SetComponentsEnabled(true);
            //
            //
            //
            // OnTargetFound?.Invoke();
            GameObject death = Instantiate(deathPrefab, transform, true);
            death.name = "Death";
            death.transform.position = transform.position;
            GameObject effect = Instantiate(effectPrefab, transform, true);
            effect.name = "Effect";
            effect.transform.position = transform.position;
        }
    
        protected virtual void OnTrackingLost()
        {
            // if (mObserverBehaviour)
            //     SetComponentsEnabled(false);
            //
            //
            // OnTargetLost?.Invoke();
            GameObject death = GameObject.Find("Death");
            if (death != null)
            {
                Destroy(death);
            }
    
            GameObject effect = GameObject.Find("Effect");
            if (effect != null)
            {
                Destroy(effect);
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

    三、添加过渡效果

        private void Update()
        {
            _death.transform.localPosition = Vector3.Lerp(_death.transform.localPosition , Vector3.zero, Time.deltaTime);
            _death.transform.localScale = Vector3.Lerp(_death.transform.localScale , new Vector3(0.4f, 0.4f, 0.4f), Time.deltaTime);
        }
    
        protected virtual void OnTrackingFound()
        {
            // if (mObserverBehaviour)
            //     SetComponentsEnabled(true);
            //
            //
            //
            // OnTargetFound?.Invoke();
             _death = Instantiate(deathPrefab, transform, true);
            _death.name = "Death";
            
            
            GameObject effect = Instantiate(effectPrefab, transform, true);
            effect.name = "Effect";
            effect.transform.position = transform.position;
        }
    
    
        protected virtual void OnTrackingLost()
        {
            // if (mObserverBehaviour)
            //     SetComponentsEnabled(false);
            //
            //
            // OnTargetLost?.Invoke();
            GameObject death = GameObject.Find("Death");
            if (death != null)
            {
                Destroy(death);
            }
    
            GameObject effect = GameObject.Find("Effect");
            if (effect != null)
            {
                Destroy(effect);
            }
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43

    四、效果

    在这里插入图片描述

  • 相关阅读:
    【Springboot】动态配置数据源,系统自动辨认服务端与本地端数据源
    网站安全防护措施有哪些
    虚拟机配置centos7网络
    LuatOS-SOC接口文档(air780E)-- ftp - ftp 客户端
    股权项目披露:扬州国扬电子有限公司6.2664%股权转让
    前端总结——计算机网络
    Cy3.5-PEG-Biotin,Cy3.5-聚乙二醇-生物素,Biotin/mal/dope/dbco-PEG-Cy3.5
    2023北京联合大学考研介绍
    SQL Select(选择) 语法
    套接字的多种可选项
  • 原文地址:https://blog.csdn.net/qq_34697930/article/details/138189392