AR 恐龙博物馆三(萌宠小恐成长日记之摸爬滚打)

来源:互联网 发布:php curl 跳转页面 编辑:程序博客网 时间:2024/04/30 13:59

游戏下载地址:http://download.csdn.net/detail/nicolelili1/9907607


1、需要在英文输入法下运行,摄像头需要由上向下倾斜


2、设置分辨率的按键
Y:设置分辨率为3840x1160


I:设置分辨率为1600x1024


O:设置分辨率为1600x900


P:设置分辨率为1366x768


K:设置分辨率为1280x960


L:设置分辨率为1280x800


3、退出程序的按键
Esc:键退出程序


4、使用方法
程序运行后,恐龙在屏幕中,运行待机动画
R:恐龙尖叫
X:恐龙低头到处闻
C:恐龙低头吃东西
E:向左转
Q:向右转
WASD:恐龙前后左右转动
播放的动画结束后继续进入到待机动画


1、


2、添加行走、吃东西、问东西之间的动画

①从Any State向Smell和Eating动画分别连两根线,说明可以从任意状态切换到这两个动画。再从这两个动画分别连线到blend Tree,说明闻东西和吃东西动画执行结束后会到iddle空闲动画。


②在Parameters下创建两个Trigger分别为Eat和Smell用来控制吃和闻


③将从Any State上到动画间的transition取消勾选Has Exit Time,表示任何时候都可以切换到吃喝闻的动画




④吃喝闻动画到Blend Tree之间的transition选中Has Exit Time,表示动画播放完成之后才可以进入到iddle动画



⑤添加吃东西和闻东西之间的触发器


⑥写C#脚本

using System.Collections;using System.Collections.Generic;using UnityEngine;public class Anim_Manager : MonoBehaviour {    public Animator V_Ani;    public GameObject V_Obj;void Start () {}void Update () {        //按下C键吃东西        if (Input.GetKey(KeyCode.C))        {            V_Ani.SetTrigger("Eat");        }        //按下X键闻东西        if (Input.GetKey(KeyCode.X))        {            V_Ani.SetTrigger("Smell");        }              //将按下W、S键的参数值赋给这个参数FB        V_Ani.SetFloat("FB",Input.GetAxis("Vertical"));     //默认是WS键        V_Ani.SetFloat("LR", Input.GetAxis("Horizontal"));  //默认是AD键        //上下平移的速度        float translationFB = Input.GetAxis("Vertical") * 0.1f;        //左右平移的速度        float translationLR = Input.GetAxis("Horizontal") * 0.1f;        //恐龙行走的位移        V_Obj.transform.Translate(translationLR, 0, translationFB);    }}
⑦分别给RaptorAnimated添加Animator Controller和空物体Manager添加Script脚本Anim_Manager

⑧运行后

待机状态

按下W键向前走


按下A键向左走


按下S键向后走


按下D键向右走


按下C键吃东西


按下X键闻东西



3、添加尖叫

①添加遮罩层


②创建遮罩层

在Layer标签页点击“+”,添加一个层并且重命名为“Mask”


创建一个空的动画,放在一进来就开始尖叫


点击Mask层的设置按钮,将Weight设置为1,将Blending设置为Additive


添加从任意状态可以切换到尖叫的动画,尖叫动画执行完毕后退出


在Parameters标签页添加一个布尔值Bark用来控制尖叫动画,在Any State到Bark动画之间的Conditions添加动画触发器Bark


Base Layer的Bleding要设置为Override


③创建骨骼只控制头部

在Project视图创建一个骨骼重命名为HeadMask


点开Transform,给Use skeleton from设置为RatorAnimatedAvatar(恐龙的骨骼),然后点击Import skeleton,导入恐龙的所有骨骼



取消除控制头部和脖子外的其它所有的骨骼


在遮罩层中把骨骼遮罩添加进来


④添加触发尖叫动画的代码

using System.Collections;using System.Collections.Generic;using UnityEngine;public class Anim_Manager : MonoBehaviour {    public Animator V_Ani;    public GameObject V_Obj;void Start () {}    void Update() {        //按下C键吃东西        if (Input.GetKey(KeyCode.C))        {            V_Ani.SetTrigger("Eat");        }        //按下X键闻东西        if (Input.GetKey(KeyCode.X))        {            V_Ani.SetTrigger("Smell");        }        //只有在行走动画的时候才有位移,解决同时按下R键才可以进行尖叫,解决闻东西、吃东西时同时尖叫的bug        if (V_Ani.GetCurrentAnimatorStateInfo(0).IsName("Blend Tree")){         //按下R键尖叫        if (Input.GetKey(KeyCode.R))            {                V_Ani.SetTrigger("Bark");            }        }        //将按下W、S键的参数值赋给这个参数FB        V_Ani.SetFloat("FB",Input.GetAxis("Vertical"));     //默认是WS键        V_Ani.SetFloat("LR", Input.GetAxis("Horizontal"));  //默认是AD键        //只有在行走动画的时候才有位移,解决同时按下C键和W、A、S、D任意一键时出现的边吃东西四肢不动但是有位移滑行的bug        if (V_Ani.GetCurrentAnimatorStateInfo(0).IsName("Blend Tree"))        {            //上下平移的速度            float translationFB = Input.GetAxis("Vertical") * 0.1f;            //左右平移的速度            float translationLR = Input.GetAxis("Horizontal") * 0.1f;            //恐龙行走的位移            V_Obj.transform.Translate(translationLR, 0, translationFB);        }    }}



⑤运行后按R键运行尖叫动画


行走过程中也可尖叫


按下C键恐龙吃东西







注:参考资料:http://edu.manew.com/course/216/learn#lesson/3173