目录
- 前言
- 一、AR模型出场
- 二、AR出场特效
- 三、添加过渡效果
- 四、效果
前言
在这个数字化日益增长的时代,增强现实(AR)技术正以前所未有的速度发展。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);}}
然后挂上脚本
二、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);}}
三、添加过渡效果
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);}}