为什么在调用Player的这个脚本里面的东西时就可以直接通过得到组件来访问。
而为什么在访问GameManager脚本下面的东西时就要使用.instance(this)的私有变量再用一个外部函数来访问呢?
这两种方法有什么区别?应该在什么时候使用哪个?
第二个问题
public static MusicManager Instance {
get{
return _instance;
}
}
这个中的instance在c#中属于什么?
我以为get set只需要使用type className来实现,为什么这里出现了一个Instance,不是很明白
第三个问题
public void RandomPlay(params AudioClip[] clips)
{
float pitch = Random.Range(minPitch, maxPitch);
int index = Random.Range(0, clips.Length);
AudioClip clip = clips[index];
efxSource.clip = clip;
efxSource.pitch = pitch;
efxSource.Play();
}
为什么这里传递的参数是两个AudioClip而不是一个AudioClip的数组包括了两个AudioClip呢?
因为这里的参数是AudioClip的数组,而却在传递实参时给了两个AudioClip
1,访问组件的话,就先得到组件,再访问
你的GameManager这是是一个单例模式,其实也是可以通过得到组件的方式来访问的,但是比较麻烦,为了方便访问就通过instance这种单例模式来访问,只有一些管理类会通过单例模式来方便访问
2,Instance 这里是自定义的你可以叫任何名字,主要是static,这是一个静态的属性,静态属性可以通过类名直接访问到,这样是为了方便访问,不用每次都去查找并GetComponent的
3,这个就是参数数组,就是参数是可变的,你可以传递0-任意个,会把你传递的参数组装成一个数组
这个知识点可以看下我讲解的C#编程第一季第二季中有讲解