官方文档

关键词

音频属性播放模拟脚本同步组件默认值音频资源引用类型

引用类型的使用

好的,下边我们再来讲一下引用类型的使用,那我们的属性也可以是引用类型,那我们以后可能比较常用的有以下几个

  • 第一个就是 cc.Node ,引用一个节点
  • cc.SpriteFrame 引用一个图片帧
  • cc.AudioClip 引用一个音频资源

image.png
那么我们这节课演示的是 cc.AudioClip 也就是音频的使用,怎么样在我们的这个游戏里边来播放一个音频,不过我们这节课是有一点点超纲,因为关于这个引用类型我们还没有专门的学习,怎么样来播放一个音频,我们也没有介绍。但是没有关系,大家看一下我们这个例子,应该也就学的差不多了。

首先我们又修改了一下 pigscript 这个脚本,在里边添加了一个音频,看一下我们最新的源码,还是 pigscript 这个脚本文件。

  1. @property(cc.AudioClip)
  2. audio : cc.AudioClip = null;

在这里边我们添加了一个新的属性,这个属性的类型是 cc.audioclip ,那 audioclip 表示了一个音频资源,比如说一个mp3 文件,然后这个属性的名字叫 audio ,那有了这个音频资源之后,我们在每移动一步的时候会同步播放一下这个音频,也就是模拟一个脚步的声音。

那怎么样来播放音频,我们得用** cc.audioEngine.play **这个方法,用这个 API 就可以来播放一个音频
image.png

  1. cc.audioEngine.play(this.audio,false,1);

这个关于音频播放,我们后边会有专门的介绍,这时候我们可以直接抄一下。而我们只需要看第一个参数,第一个参数就是你传进来的那个音频资源,那有了这个脚本之后它就能够播放了,但是我们在属性编辑器里边来看一下。比如说我们选中佩奇这个节点,然后看一下 pigscript 这个组件。那这个组件的 audio 属性默认值是 null 而且是空的。
image.png
你要想播放一个音频,那你得给大家指定一下,你不指定它播放什么,所以我们现在就要来指定一个音频。那音频我们现在还没有,在我们的 assets 这个资源管理器里边并没有音频资源,我们可以拖一个进来。

现在我们就先建一个子目录,叫 audio ,然后把我们需要的音频资源拖过来。把这个音频资源加入到我们的这个 assets 下边

image.png image.png

现在你的音频资源就有了,这个脚步声,现在需要把这个指定一下,我们点中佩奇这个节点,然后拖拽过来,拖拽到这个 audio 这个位置松手,这也就意味着这个属性引用的是这个资源,这就是所谓的引用类的属性。然后我们 ctrl 加 S 保存一下当前的场景。

然后我们再运行一下我们现在的游戏,那现在的游戏肯定是更丰富了,因为它不但可以移动,当我们移动的时候,它是有一个脚步声被同步播放出来的这个声音。目前来说佩奇已经有脚步声了,但是乔治还没有,因为我们并没有为他指定,所以我们为乔治也指定一下,点中乔治这个节点,当前这 audio 是空的,我们让他引用这个资源,然后 ctrl 加 S 保存下。
image.png
那现在在运行这个程序,会发现这个乔治也有了脚步声,不过他们俩脚步声是一样的,你也可以指定两个脚步声资源,给佩奇指定一个音频,然后给他来指定一个音频,作为他的脚步声也是可以的,那这个需要你准备两个两种脚步声了。

好的,那通过这个例子,大家应该已经明白了,这个引用类资源的指定,如果你以后想要写的话,你可能是已经忘了,没有关系,你就直接照抄就可以了。

  • 首先指定一个属性,这个属性的类型是一个引用的类型,然后就使用它就可以了。
  • 定义完了之后,需要在属性检查器里边给他拖拽一个具体的对象过来才可以,他要引用一个节点的话,就把节点引用过来,他要引用图片的话就把图片给拽过来。如果引用的是一个声音的话,就把这个声音资源给拖过来。