在上章节中,我们实现了AR动物园的基本功能,今天这一部分我们重点教大家AR的交互。主要内容分为:AR动物触摸交互的实现,按钮交互的实现。
上一章节中最重要的是修改各动物模型的四种动画名称一样,这样方便于我们用脚本控制。
实现目标:在手机上点击识别后的动物后,动物会发出叫声。
所需资源:各动物的叫声(大家自行到网上下载)
在每个动物模型上挂AudioSource.
在unity 中建立脚本,命名为ClickAnimal.cs,在此之前,为每个动物模型挂上Box Collider,并把isTrigger 钩上。
并为每个动物模型修改Tag。
尽量修改为各动物的英文名。
接下来写脚本。这里用射线检测来实现(这是移动端最万能的方式)。主要代码如下:
if(Input.GetMouseButtonDown(0)){
Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHithit;
if(Physics.Raycast(ray,outhit,1000))
{
}
}
接下来就可以在里面写判断,这里给大家写一个吧,剩下自己实现(unity 初学者都应该会)。
if(hit.collider.tag=="Loin"){
sound.Play();
}
上面的那段判断触摸点击交互的代码十分高效,建议大家自己收藏下,万能模版。
四个按钮分别实现四个动画。
先建立一个脚本,名字自己命名,我在这里名为Player。编写其内容。
这段脚本相当简单,编写完后,为每个模型挂上,并填写内容。
接下来见一个空物体。并挂上一个新脚本,命名为AnimPlay,
这里使用了单例模式来获取Player里的播放动画的方法,以方便按钮的调用。
好了接下来为每个按钮挂上这个新建的物体,并相应调用方法,到这里,AR动物园的大概功能就实现了。当然你也可以脑洞大开,添加个粒子效果等等。
不懂得的同学可以加入AR开发群:427199775