好吧我的问题,因为它说的是指粒子系统和声音,我不是100%安全,它与粒子系统的事实有关,基本上我对我的比赛有火,当我的球与火它应该播放声音,事情是,它找不到AudioSource并继续说没有AUdioSource附加,但我已经使用2种不同的方式,通过检查器附加audioSource,并将其设置为私有并获得gameObject中audioRurce的组件,那么我做错了什么? :S
以下是代码:
using UnityEngine;
using System.Collections;
public class particlCol : MonoBehaviour {
Manager gameManager;
public AudioClip aud;
private AudioSource audioC;
void Start()
{
audioC = GetComponent<AudioSource> ();
gameManager = GameObject.Find ("GameController").GetComponent<Manager> ();
}
void OnParticleCollision(GameObject other)
{
if (other.tag == "Player") {
Debug.Log ("entrou");
audioC.clip = aud;
audioC.Play ();
gameManager.LifeDown ();
}
}
}
对象的屏幕截图:
Ps:之前它运作得非常好,当它触及火焰时我在游戏中失去了生命,所以问题不在于自身的冲突
答案 0 :(得分:1)
你可以做一件事:
创建一个gameObj,将你想播放的音频转换为层次结构,取消选中唤醒属性上的播放,然后将它们变为上述gameObject的子节点。
然后创建一个脚本并在该脚本中创建AudioSource变量并在Start()中执行: //示例
公共AudioSource拍摄;
开始(){
拍摄= GetComponent();
}
//就是这样
现在将此脚本附加到上面制作的GameObject,并将作为子项的ur声音文件附加到脚本AudioSource变量选项(否则将不显示)。
现在无论你想把声音播放到哪里,你只需要调用那个剧本(
答案 1 :(得分:0)
Check in Awake方法是你的AudioSource null:
void Awake()
{
Debug.Log("AudioSource: " + GetComponent<AudioSource>());
}
或尝试:
[RequireComponent(typeof(AudioSource))]
我读到错误可能是由音频剪辑造成的,所以请尝试重新导入你的声音。