AR 恐龙博物馆四(萌宠小恐成长日记之咿呀学语)

来源:互联网 发布:qq加好友软件 编辑:程序博客网 时间:2024/04/30 14:53

游戏下载地址: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:恐龙前后左右转动
播放的动画结束后继续进入到待机动画


2、将音频文件拖动到Assets中


二、使用第一种方法,在播放动画的函数中播放闻东西的声音

1、修改脚本文件的代码

using System.Collections;using System.Collections.Generic;using UnityEngine;public class Anim_Manager : MonoBehaviour {    public Animator V_Ani;          //动画对象    public GameObject V_Obj;        //恐龙对象    public AudioClip Smell_Clip;    //闻东西的声音    public AudioClip Eate_Clip;     //吃东西的声音void Start () {}    void Update() {        Eat();        Smell();        Bark();        TranslatePosition();    }    private void Eat()    {        //按下C键吃东西        if (Input.GetKey(KeyCode.C))        {            V_Ani.SetTrigger("Eat");        }    }    private void Smell()    {        //按下X键闻东西        if (Input.GetKey(KeyCode.X))        {            V_Ani.SetTrigger("Smell");            //给声音源组件添加闻东西的声音文件            gameObject.GetComponent<AudioSource>().clip = Smell_Clip;            //更改声音播放的速度            gameObject.GetComponent<AudioSource>().pitch = 1.5f;            //播放声音源组件            gameObject.GetComponent<AudioSource>().Play();        }    }    private void Bark()    {        //只有在行走动画的时候才有位移,解决同时按下R键才可以进行尖叫,解决闻东西、吃东西时同时尖叫的bug        if (V_Ani.GetCurrentAnimatorStateInfo(0).IsName("Blend Tree"))        {            //按下R键尖叫            if (Input.GetKey(KeyCode.R))            {                V_Ani.SetTrigger("Bark");            }        }    }    private void TranslatePosition()    {        //将按下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);        }    }}


2、将闻东西的声音源组件赋给变量,并添加Audio Source组件



3、运行后当低头闻东西的时候播放声音




三、添加吃东西的声音(使用第二种方法,设置一个播放声音的函数,在动画的播放轴上将声音添加进去)

1、创建一个C#脚本

using System.Collections;using System.Collections.Generic;using UnityEngine;public class Audio_Ctrol : MonoBehaviour {    public AudioClip Bark_Clip;    // Use this for initialization    void Start () {}// Update is called once per framevoid Update () {}    public void Au_Bark()    {        //给声音源组件的音频设置为尖叫声音文件        gameObject.GetComponent<AudioSource>().clip = Bark_Clip;        //更改声音播放的速度        gameObject.GetComponent<AudioSource>().pitch = 2.0f;        //播放声音源组件        gameObject.GetComponent<AudioSource>().Play();    }}


2、添加上脚本,并给尖叫声音源赋上声音(必须添加到发出声音源的物体上,此例中是恐龙尖叫,必须添加到恐龙上,否则没有声音)


3、在Project视图中选中恐龙的.fbx文件,在Inspector视图中点击Animation标签


4、选择Bark动画


5、在Events处点击最左侧的按钮,添加事件,

6、把尖叫的函数名粘贴到Function处,在Object处添加函数所在的脚本,然后点击Apply



7、运行后按下R键尖叫的同时发出尖叫声,小恐终于学会说话了!!!


四、添加旋转,并将脚本添加到恐龙身上

1、脚本代码

using System.Collections;using System.Collections.Generic;using UnityEngine;public class Anim_Manager : MonoBehaviour {    public Animator V_Ani;          //动画对象    public GameObject V_Obj;        //恐龙对象    public AudioClip Smell_Clip;    //闻东西的声音 void Start () {}    void Update() {        Eat();        Smell();        Bark();        TranslatePosition();        Ro_Left();        Ro_Right();    }    private void Eat()    {        //按下C键吃东西        if (Input.GetKey(KeyCode.C))        {            V_Ani.SetTrigger("Eat");        }    }    private void Smell()    {        //按下X键闻东西        if (Input.GetKey(KeyCode.X))        {            V_Ani.SetTrigger("Smell");            //给声音源组件添加闻东西的声音文件            gameObject.GetComponent<AudioSource>().clip = Smell_Clip;            //更改声音播放的速度            gameObject.GetComponent<AudioSource>().pitch = 1.5f;            //播放声音源组件            gameObject.GetComponent<AudioSource>().Play();        }    }    private void Bark()    {        //只有在行走动画的时候才有位移,解决同时按下R键才可以进行尖叫,解决闻东西、吃东西时同时尖叫的bug        if (V_Ani.GetCurrentAnimatorStateInfo(0).IsName("Blend Tree"))        {            //按下R键尖叫            if (Input.GetKey(KeyCode.R))            {                V_Ani.SetTrigger("Bark");            }        }    }    private void TranslatePosition()    {        //将按下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);        }    }    //向左旋转    void Ro_Left()    {        if (Input.GetKey(KeyCode.Q))        {            transform.Rotate(0,-25*Time.deltaTime,0,Space.Self);        }    }    //向右旋转    void Ro_Right()    {        if (Input.GetKey(KeyCode.E))        {            transform.Rotate(0, 25 * Time.deltaTime, 0, Space.Self);        }    }}
2、给物体添加脚本


3、运行后

初始位置


按下Q向左旋转


按下E向右旋转



这里有颗糖,过来吃糖



苦吗?谁让你嚼碎了吃的?一口吞就不苦了,外面的皮是甜的。好了,再给你颗糖吃,这个里外都是甜的。先闻一下,甜吗?


好了,吃吧,没骗你吧,真的是甜的


你这么小,快点长大吧,那样就不会被别人欺负了!







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