本章内容
1、添加控制角色的虚拟joystick,完成猫咪移动
2、完成猫咪3D声音设计
游戏展示:Vuforia-PocketCat_1.0
一、完成猫咪移动
1、导入Unity标准资源包
Unity菜单选择Import Package,导入CrossPlatformInput
2、添加MobileSingStickControl
将Assets/Standard Assets/CrossPlatfromInput/Prefabs的MobileSingSticControl拖动到窗口,删掉其子对象的JumpButton,调整其子对象的MobileJoystick到合适大小,组件中的Movement Range属性设置为50
3、设置猫咪属性
给猫咪添加Rigidbody组件,取消Use Gravity(使用重力)
更改Animation的Size为2,Element 0为Idle,Element 1为Walk
4、增添控制小猫咪的脚本
代码语言:javascript复制using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;
public class CatController : MonoBehaviour
{
Rigidbody rb;
Animation anim;
private void Start()
{
rb = GetComponent<Rigidbody>();
anim = GetComponent<Animation>();
}
private void Update()
{
float x = CrossPlatformInputManager.GetAxis("Horizontal");
float y = CrossPlatformInputManager.GetAxis("Vertical");
//设置小猫的移动速度
Vector3 movement = new Vector3(x, 0, y);
rb.velocity = movement * 0.3f; //The velocity vector(速度向量) of the rigidbody
//让小猫朝着Joystick引导的方向前进
if (x != 0 && y != 0)
{
transform.eulerAngles = new Vector3(transform.eulerAngles.x, Mathf.Atan2(x, y) * Mathf.Rad2Deg, transform.eulerAngles.z);
}
//小猫咪切换动画
if (x != 0 || y != 0)
anim.Play("Walk");
else
anim.Play("Idle");
}
}
二、完成猫咪3D声音设计
将第一章下载的音频文件“暹罗猫”放到Resources文件夹,给cat_Idle添加Audio Source组件,将“暹罗猫”音频文件添加到该组件AudioClip上
勾选Loop,取消Play On Awake
Spatial Blend设置为1
Volume Rolloff设置为Custom Rolloff
Doppler Level设置为0
在ImageTarget的DefaultTrackableEventHandler脚本增添代码
OnTrackingFound添加如下代码
代码语言:javascript复制GameObject.Find("cat_Idle").GetComponent<AudioSource>().Play();
OnTrackingLost添加如下代码
代码语言:javascript复制GameObject.Find("cat_Idle").GetComponent<AudioSource>().Stop();
若我们想详细观察猫咪细节,建议完成后续的模型脱卡和EasyTouch,实现识别图丢失后的模型显示
模型脱卡地址:模型脱卡
EasyTouch地址:EasyTouch
游戏中可能遇到的问题:
1、Console:The animation state Idle could not be played because it couldn't be found!
解决办法:在本项目中,我们是用Animation来控制猫咪运动,所以在导入的FBX Perfabs—Rig设置时,要设置为Legacy!
当我们用AnimatorController控制运动时,则可设置为Generic
2、Unity不知道如何使用外置摄像头
ARCamera—Open Vuforia configuration—Webcam—Camera Device,选择你需要的摄像头即可
3、用户运行时,显示效果不清晰
解决办法:加入对焦代码,所有资料已放在第一章下载资源里,可到此链接下载该文件,将其附加在ARCamera上
4、MobileSingleStickControl的MobileJoystick无法在Unity中激活
解决办法:先发布一下Android App,MobileJoystick便可在Unity中激活了