我正在尝试在玩家杀死敌人时触发声音,如下面的代码所示。与敌人相撞会导致其被摧毁并成功提高杀伤力,但不会产生所需的声音。播放器跳跃时,类似的脚本确实可以触发声音,所以我不确定自己做错了什么。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CollectibleItem : MonoBehaviour {
[SerializeField] private string itemName;
[SerializeField] private int pointsValue;
[SerializeField] private AudioSource soundSource;
[SerializeField] private AudioClip killSound;
ScoreBoard board;
void Start() {
var uiObject = GameObject.Find("Timer");
ScoreBoard board = uiObject.GetComponent<ScoreBoard>();
}
void OnTriggerEnter(Collider other) {
soundSource.PlayOneShot(killSound);
Managers.Inventory.AddItem(itemName);
Destroy(this.gameObject);
}
}
答案 0 :(得分:1)
问题是没有对AudioSource
组件的引用。
我假设您的AudioSource与此脚本连接到相同的GameObject。只需将以下内容添加到您的Start
方法中即可。
soundSource=GetComponent<AudioSource>();
对于您的AudioClip
,我也有些怀疑。