最近涉及到 音频结束后的调用问题,unity 原生的音频组件 AudioSourse  没有功能,于是自己写了一个。

下面是代码:

using Assets.Scripts.Entities;
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AudioSourceInfo
{private float playTime = 0;public AudioSource AudioSource { get; private set; }public AudioState AudioState = AudioState.Idle;public Action AfterPlaying { get; set; }public int ID = 0;public AudioSourceInfo(GameObject go){this.AudioSource = go.AddComponent<AudioSource>();}public AudioClip Clip{get{return this.AudioSource.clip;}set{this.AudioSource.clip = value;playTime = 0;}}public bool Loop{get{return this.AudioSource.loop ;}set{this.AudioSource.loop = value;}}public float Volume{get{return this.AudioSource.volume;}set{this.AudioSource.volume = value;}}public void Play(){if (null == this.AudioSource){return;}this.AudioState = AudioState.IsPlaying;this.AudioSource.Play();}public void Pause(){if (null == this.AudioSource){return;}if(this.AudioSource.isPlaying){this.AudioState = AudioState.Pause;this.AudioSource.Pause();}}public void Stop(){if (null == this.AudioSource){return;}this.AudioState = AudioState.Stop;this.AudioSource.Stop();if(AfterPlaying!= null){this.AfterPlaying();}}private void Update(){if (this.AudioSource != null &&  this.AudioSource.clip!= null && this.AudioState == AudioState.IsPlaying){playTime += Time.fixedDeltaTime;if (playTime >= this.Clip.length){playTime = 0;this.Stop();}}}
}public enum AudioState
{Idle,IsPlaying,Pause,Stop,
}

Unity 的 AudioSourse 播完的监听相关推荐

  1. Unity中场景生命周期的监听: EditorSceneManager

    本文分享Unity中场景生命周期的监听: EditorSceneManager 在Unity开发中, 有时我们需要在场景的某些生命周期时做一些特定的操作, 特别是在Editor模式下的一些工具代码. ...

  2. Bootstrap4----网络系统、图像形状、轮播、滚动监听、多媒体对象、下拉菜单导航及按钮

    Bootstrap4 1.网络系统 规则 屏幕最多分为12列(同一行数字相加应为12) 用行来创建水平的列组 为自动设置外边距内边距,需将网格每一行需要放在设置了 .container (固定宽度) ...

  3. android ViewPager实现无限轮播和设置监听事件

    ViewPager的无限轮播,主要以实现为主.代码如下 首先定义activity_viewpager.xml: <LinearLayout android:layout_width=" ...

  4. Android App用MulticastSocket监听组播,为什么连接到不同路由、在不同手机上跑,有的能收到有的收不到...

    ---------------------------!! 转载请注明出处 !!----------------------- 一个项目,利用wifi组播在局域网内发现设备.却发现在有的路由器上能正常 ...

  5. 组播基本概念、IGMP、IGMP监听学习笔记

    前言 一直对组播这个概念迷迷糊糊,特别是交换机处理组播的方式,非常想搞懂但是懒癌发作.这几天终于耐心地看了下有关组播的资料,大致了解了一下同一广播域内组播的相关知识.组播占了计算机网络的一大部分,特别 ...

  6. 【Unity】监听编辑器聚焦/激活状态OnEditorFocus

    Unity提供了大量监听Asset目录下资源变化/导入时的回调,只需写个类继承AssetPostprocessor,实现各种回调方法即可接收到消息.但是Asset目录之外的文件变化该如何监听呢? 配置 ...

  7. linux监听9080,基于UPnP发现与组播技术的IPTV终端实现

    摘 要:本文设计并实现的终端系统工作在mClinux操作系统下,通过应用UPnP中的SSDP服务发现协议,实现在局域网中IPTV终端的自动发现, 并使用IP组播技术将TV视频信号及本地的AV视频信号. ...

  8. 三、bootstrap4 组件(警告和提示框、徽章和面包屑、按钮按钮组、卡片、列表组、导航和选项卡、分页和进度条、巨幕和旋转图标、轮播图、折叠菜单、下拉菜单、导航条、滚动监听、轻量弹框、模态框、表单)

    1.1 警告提示框 1.2 徽章和面包屑 1.3 按钮和按钮组 1.4 卡片 1.5 列表组 1.6 导航和选项卡 1.7 分页和进度条 1.8 巨幕和旋转图标 1.9 轮播图 1.10 折叠菜单 1 ...

  9. bootstrap中轮播图、模态框、提示框/弹出框、滚动监听、弹性布局、响应式flex、多媒体对象

    轮播图: bootstrap封装了轮播图的功能,其具体如下: 类名 描述 .carousel 创建一个轮播图块的容器,实质是做布局用:且此容器应该有一个di属性,其属性值提供给下面左右按钮href锚点 ...

最新文章

  1. ES权威指南[官方文档学习笔记]-57 Analysis and analyzers
  2. OC的项目网址(自己编写的项目)
  3. iOS获取自1970年毫秒数使用OC和swift两种语法,返回字符串
  4. python 遍历数组根据规律拆分,python 实现以相同规律打乱多组数据
  5. 中国移动公布5G核心网大单 全面加快5G网络部署
  6. D-Link 不止暴露固件镜像密钥,还被曝5个严重0day
  7. wpe修改充值_【图片】【WPE修改】WPE修改金币、属性、全属性、魔方实测可用版!【古戈吧】_百度贴吧...
  8. 系统集成项目管理工程师考试大纲和复习知识点
  9. springboot集成钉钉_SpringBoot集成钉钉报警sdk(解决Failed to introspect Class异常)
  10. 当mqtt客户端向服务端发送信息出现掉包的问题
  11. 施一公:如何写好一篇学术论文?
  12. freeCodeCamp Falsy Bouncer
  13. C++C++ 编写GoFGoF设计模式里Lexi样例
  14. javaScript---异步那些事(promise)(21/11/8)
  15. 如何快速拆分PDF文件(照片快速转换成pdf)
  16. 这个儿童节,我们和小时候有什么区别?
  17. 程序出现错误如何解决
  18. 无锡seo揭秘2017年百度核心算法(内部资源)
  19. USB摄像头转HDMI设备,USB Camera to HDMI
  20. GB/T 38775-2020国标出台,电动汽车无线充电即将来临!

热门文章

  1. 真刺激!电容放电,火花四溅!
  2. 【测试开花】三、项目管理-后端-实现列表接口(含分页、模糊查询)
  3. .nii格式文件python_python处理nii格式文件
  4. PHP RSA密文过长加密解密 越过1024的解决代码
  5. 物联网工程专业的迷茫与抉择
  6. 苹果python怎么设置字体_在Mac OS X 10.6中的Python中,无法在Matplotlib中将字体更改为Helvetica...
  7. YOUChain全球节点招募马来西亚吉隆坡站圆满完成
  8. 安装VS2003出现问题——Microsoft FrontPage 2000 Web 扩展客户端安装不成功 及其解决方法
  9. 关于RF框架的一些整理
  10. 【工具】Chrome浏览器书签误删恢复