我在unity3d
学习raycasting
和面临的一个音频问题。我正在做的是有一个Main Camera
,其中附有一个名为NewCast
的脚本。那Main Camera
投射了一个光线,它有一个叫做box collider
的组件。当看这个立方体时,光线投射效果很好。我在播放声音。这意味着当相机看着这个物体射线投射到立方体时。但为什么音频播放多次。我只想播放一次该音频,当我查看该对象并一次又一次地重复此过程时。包link。 声音播放多次,当看一个物体
代码:
public class NewCast : MonoBehaviour
{
private RaycastHit hit;
bool playAudio1;
[SerializeField]
private AudioSource source;
[SerializeField]
private AudioClip clip1;
private void Start()
{
source.clip = clip1;
playAudio1 = true;
}
private void Update()
{
if (Physics.Raycast(transform.position, transform.forward, out hit,9f))
{
if (hit.collider.gameObject.name == "Cube")
{
playAudio1 = false;
if (!playAudio1)
{
source.Play();
if (!source.isPlaying)
{
playAudio1 = true;
}
}
}
}
}
}
首先,我尝试使用相同的逻辑,但它也会播放多次声音。 – hamel123
看起来像是isPlaying有问题(有默认剪辑的东西)。尝试直接在audioSource(在编辑器中)分配音频片段。或者在播放之前尝试分配剪辑(source.clip = clip1)。 – FLX
我正在脚本的'Start()'函数中分配剪辑 – hamel123