Unity-无法在C#

时间:2019-04-25 08:00:26

标签: c# unity3d osc

编辑! 我通过将source.play移到update中的一个函数中来使其工作,现在我用一个布尔值来调用它。

此刻,我正在为Unity中的VR鼓组编码,当Unity收到来自输入设备的OSC消息时,我需要Unity播放声音。我已经使用了所有的OSC,但是当我要播放声音时,声音就完全停止了。

我有2个要在其间进行切换的音频片段,我尝试使用2个音频源和1个音频源以及多个音频片段,但都没有运气。 我正在运行调试,它会运行命令的开始,但是在进入debug.log打印之前会停止。

 if ((int)oscVal == 3)
        {
            lastTime2 = currentTime;
            DC.isActive2 = true; //It runs to this part here and then stops 
            source2.Play(); //This line doesn't seem to run
            Debug.Log("Activated Drum2"); //This line doesn't run either
        }

我希望命令运行并播放声音并继续运行。 它不会执行此操作,只是在命令中途停止。

1 个答案:

答案 0 :(得分:1)

首先,您需要定义AudioSource变量并为其分配音频剪辑,然后将其分配给编辑器,您可以为此使用此代码

<TextField
  id="standard-number"
  label="Number"
  value={this.state.age}
  onChange={this.handleChange('age')}
  type="number"
  className={classes.textField}
  InputLabelProps={{
    shrink: true,
  }}
  margin="normal"
/>

第二,如果要从文件路径播放音乐

public AudioSource audioSource;
public AudioClip clip;

public void PlayMusic( bool isLoopSound) 
  { 
       audioSource.clip =clip;
       if (isLoopSound) {
            audioSource.loop = true;
        }
        else {
            audioSource.loop = false;
        } 
   }