Unity音频,与NPC的对话

欢迎来到unity学习unity培训unity企业培训教育专区,这里有很多U3D资源U3D培训视频我们致力于打造业内unity3d培训学习第一品牌。

今天研究了一下关于其他同学做的项目,发现受益良多。。。

音效

首先是关于音效的。

       首先准备一个音效,

       然后声明以个对象

       public AudioClip clip;//声明一个clip攻击音频
       这个相当于一个耳朵的功能

       private AudioSource girlAudio; //声明一个静态的音频来源
 
       girlAudio = this.audio;//初始化一下

       这样就又要用到触发器了,最好我们给武器增加这个脚本,因为武器碰撞到怪物才会发出声音

       void OnTriggerEnter(Collider other)//触发器

       if (other.tag == "Mouse")//当主角碰到标签为Mouse的对象时执行下面的操作

       girlAudio.audio.PlayOneShot(clip);  //播放clip攻击这个音频

       这样就可以实现攻击怪物时发出的一个声效。

NPC对话
 
        然后就是关于与NPC的对话。

      //定义NPC对话数据


      private string[] mData ={"你好,我是NPC","你的事我已经知道了",

                   "为救你的星碟,我可以给你一些建议","你需要先去提升你的等级才能去拯救星   

                    碟","快去旁边的农场种白菜去吧"};


      private int index = 0; //当前对话索引


      public GUIText mText;  //用于显示对话的GUI Text


      public Texture mTalkIcon;//对话标示贴图


      private bool isTalk = false;//是否显示对话标示贴图


      float a = 5f;


      在开始方法里设置标志位是假的:mText.enabled  = false  ;


      在更新方法里面:

      //从角色位置向NPC发射一条经过鼠标位置的射线

      Ray mRay = Camera.main.ScreenPointToRay(Input.mousePosition);

      RaycastHit mHi;

      //判断是否击中了NPC

      if (Physics.Raycast(mRay, out mHi))

      {

      //如果击中了NPC

      if (mHi.collider.gameObject.tag == "NPC1")

       {

      //进入对话状态

       isTalk = true;

      //允许绘制

       if (Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0))

         {

      //绘制指定索引的对话文本

       if (index < mData.Length)

         {

       mText.enabled = true;        

       mText.text = "NPC:" + mData[index];

       index = index + 1;

         }

       else

       {

       index = 0;

       mText.text = null;

       }


你可能感兴趣的:(Unity音频,与NPC的对话)