Unity - 简单音频视频

“Test_04”

音频

音频结构举例
使用AudioTest脚本控制Audio Source组件,在脚本中声明"music"和"se"之后,在unity中需要将音频资源拖拽到对应位置。

AudioTest

public class AudioTest : MonoBehaviour
{
    // 声明音频
    // AudioClip
    public AudioClip music;
    public AudioClip se;
    
    // 声明播放器组件
    private AudioSource player;
    void Start()
    {
        // 获取播放器组件
        player = GetComponent<AudioSource>();
        //      赋值音乐片段
        player.clip = music;
        //      设置循环播放
        player.loop = true;
        //      设置音量
        player.volume = 0.5f;
        //      播放
        player.Play();
    }

    
    void Update()
    {
        // 按空格键来控制声音的播放和暂停
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // 判断是否正在播放
            if (player.isPlaying)
            {
                // 停止播放
                //player.Stop();
                // 暂停播放
                player.Pause();
            }
            else
            {
                // 开始播放
                //player.Play();
                // 继续播放
                player.UnPause();
            }
        }
        
        // 点击鼠标左键播放特效
        if (Input.GetMouseButtonDown(0))
        {
            // 播放特效(不需要再控制暂停/播放,直接播放完)
            player.PlayOneShot(se);
        }
    }
}

视频

平面对象播放

平面对象播放

  • 在 ‘层级’ 中创建平面对象,在 ‘项目’ 中创建渲染器纹理;
  • 在平面对象中添加 ‘Video Player’ 组件,渲染模式改为渲染器纹理;
  • 将视频和渲染器纹理拖拽到组件中对应位置,并将渲染器纹理拖拽到场景中新建的平面上;
  • 新建脚本 ‘VideoTest’ 脚本控制视频播放。
UI播放

新建UI

  • ‘层级’ 中创建UI原始图像。
    UI结构示例
  • 将渲染器纹理和视频文件拖拽到 “Raw Image” 组件 和 "Video Player"组件中的对应位置;
  • 同样可以使用脚本控制视频播放。

VideoTest

public class VideoTest : MonoBehaviour
{
    // 声明视频组件
    private VideoPlayer player;
    void Start()
    {
        // 获取视频播放组件
        player = GetComponent<VideoPlayer>();
        // 唤醒程序时自动播放
        player.playOnAwake = true;
        // 循环播放
        player.isLooping = true;
        // 设置播放速度(倍速)
        player.playbackSpeed = 1.0f;
        // 控制音量(音频输出模式为”直接“时)
        player.SetDirectAudioVolume(0, 0.5f);
        // 直接播放视频
        player.Play();
    }

    
    void Update()
    {
        // 按空格键来控制视频的播放和暂停
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // 判断是否正在播放
            if (player.isPlaying)
            {
                // 停止播放
                //player.Stop();
                // 暂停播放
                player.Pause();
            }
            else
            {
                // 开始/继续播放
                player.Play();
            }
        } 
    }
}
Unity中,你可以使用内置的UI组件来创建一个按钮并关联视频和音频播放。以下是基本步骤: 1. **创建游戏对象**: 首先,在Hierarchy面板中创建一个新的UI Canvas,并添加一个Button组件。 2. **设置按钮**: - 双击Button组件打开Inspector窗口,设置按钮的基本属性,如文本、大小、位置等。 - 点击"Image"标签,选择一个纹理作为按钮的背景图片,也可以自定义形状。 3. **绑定事件**: 在Inspector中找到“On Click”事件,通常显示为一个小图标,点击它会显示一个脚本挂载选项。这里可以选择Create New Script,并命名为VideoPlayer 或 AudioPlayer。 4. **编写脚本**: 使用Unity C#编写一个简单的脚本,比如`VideoPlayerController.cs`或`AudioPlayerController.cs`。 ```csharp using UnityEngine; public class VideoPlayerController : MonoBehaviour { public AudioSource audioSource; // 音频源组件 public VideoPlayer videoPlayer; // 视频播放器组件 public void PlayAudio() { audioSource.Play(); } public void PlayVideo() { if (videoPlayer.isPlaying) { videoPlayer.Stop(); } videoPlayer.Play(); } } ``` 5. **关联资源**: 在脚本的变量前加上public修饰符,然后在Inspector里将实际的音频或视频资源拖拽到对应的组件上(audioSource for audio, videoPlayer for video)。 6. **调用方法**: 将上述方法绑定到按钮的相应点击事件上,例如在PlayAudio()方法上右键选择"Add Event" -> "On Click"。 现在,当你在游戏中点击这个按钮时,如果绑定了音频,就会播放音频;如果绑定了视频,就会播放视频。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值