[Unity][声音][Animation]代码控制3D实体播放动画发出3D声音

结合 Animation 和AudioSource组件,使得 3D的实体 播放动画,并且 播放声音。

当含有AudioSource组件的物体的AudioSource组件的Avtive为false,则不播放。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CubeJump : MonoBehaviour {
    /// <summary>
    /// 播放声音 的音效 的AudioSource组件
    /// </summary>
    [SerializeField]
    private AudioSource audioSource;
    // Use this for initialization
    void Start () {

        if (audioSource == null)
        {
            audioSource = this.GetComponent<AudioSource>();
        }//
    }
    /// <summary>
    /// 播放动画并且播放声音
    /// </summary>
    private void Play3DSound()//私有或者公有,都可以
    {

        if (audioSource != null)
        {
            audioSource.Play();
        }//
    }//
}

如果插上耳机,音频文件是可以正常播放的,那么 随着 场景的 播放,当方块开始向上跳动 的时候,就会 播放一次音频。

注意:

1.CubeJump实体的AudioSource组件的Loop不勾选,则音频播放一次,如果Loop勾选,则循环播放。

2.Play3DSound函数是CubeJump.cs文件的内容,而AnimationEvent选择调用 Play3DSound函数,是因为 CubeJump组件和Animator组件挂载在同一个 实体 上面,如果分别在不同的实体上,那么AnimationEvent就无法选择Play3DSound函数。

3.

猜你喜欢

转载自blog.csdn.net/BuladeMian/article/details/105471860
今日推荐