angrybird音乐的添加(脚本之间互相调用)

其实音乐的添加特别简单,总的来说呢就是用了一个方法,
public void AudioPlay(AudioClip clip)
{
AudioSource.PlayClipAtPoint(clip, transform.position);
}
然后在你想添加声音的地方应用这个方法就可以了
AudioPlay();
但是我碰见的问题是什么呢?就是我的声音文件在bird脚本里要用,在pig脚本里也要用,但是我不想在两个脚本里写一样的方法,因此我想到了以前一个脚本调用另一个脚本的时候两种方法:
单例化
在变量里声明,然后在awake里面获得
但是我用了第二种方法之后发现不对,声音文件没有读出来,我问了问比较会的人,他说可能是因为我pig脚本里取不到bird脚本里的东西,GetComponent你起码在inspector面板里得有,我这时意识到了一个问题,我就去翻了以前脚本里的内容,发现以前bird调用TestMyTrail脚本的时候,这两个脚本是绑在一个物体上的,但是bird和pig脚本并不是绑在同一个物体上的,所以这种调用可能是不生效的。
我试了第一种单例化的办法确实可行,但是到了最后一只猪的时候又出了错,其实很简单出错的原因,因为当我调用bird脚本里面的方法时候最后一只小鸟要销毁了,我就没有办法调用里面的方法了,所以对于这个案例我们没有办法用脚本调用脚本方法的办法来做,我们只能在pig里在写一遍方法。但我很开心我会了这个方法~~~
脚本单例化:
public static bird instance;
public void Awake()
{
instance=this;
}
调用的时候:bird.instance.什么方法()
变量声明:
public bird birds;

猜你喜欢

转载自blog.csdn.net/vickieyy/article/details/82687736