(Unity3d)Vuforia开发基础六-音频

时间:2021-02-06 05:51:42


在学会利用U3d处理音频之后,看下面的教程。  
1、 虚拟按钮  
结合Vuforia 虚拟按钮制作教程,在该方法下添加对应事件。  

复制代码
/// <summary>
/// Called when the virtual button has just been pressed:
/// </summary>
public void OnButtonPressed(VirtualButtonAbstractBehaviour vb)
{
if (!button_audio.isPlaying) {
button_audio.Play();
}
if (button_audio.isPlaying) {
button_audio.volume=1;
}
Debug.Log("OnButtonPressed::" + vb.VirtualButtonName);

// Add the material corresponding to this virtual button
// to the active material list:
switch (vb.VirtualButtonName)
{
case "one":
//myObject.transform.animation.Play();
myObject.transform.animation.Play("Take 4");
labelname = "one -> Run!";
if (!button_audio.isPlaying) {
button_audio.Play();
}
if (button_audio.isPlaying) {
button_audio.volume=1;
}
break;

case "two":
myObject.transform.animation.Play("Take 002");
labelname = "two -> Nothing!";
if (!button_audio.isPlaying) {
button_audio.Play();
}
break;

case "three":
//myObject.transform.animation.Play("Take 4");
myObject.transform.animation.Play();
labelname = "three -> Stand!";
if (!button_audio.isPlaying) {
button_audio.Play();
}
break;

case "four":
myObject.transform.animation.Play("Take 5");
labelname = "four -> Hello!";
if (!button_audio.isPlaying) {
button_audio.Play();
}
break;

}
}
2、 模型出现  
 
DefaultTrackableEventHandler 脚本中, OnTrackingFoun d方法触发。  

复制代码
private void OnTrackingFound()
{
if (!baymax_audio.isPlaying) {
baymax_audio.Play ();
}
if (baymax_audio.isPlaying) {
baymax_audio.volume = 60;
}

Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);

// Enable rendering:
foreach (Renderer component in rendererComponents)
{
component.enabled = true;
}

// Enable colliders:
foreach (Collider component in colliderComponents)
{
component.enabled = true;
}
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
}
3、按钮事件  
 

总结:  
1、 Unity3D播放音频处理方式一样  
  if  (!button_audio.isPlaying) {  
  button_audio.Play();  
  }  
2、对AR场景中,音效触发事件的不同 在学会利用U3d处理音频之后,看下面的教程。 
1、虚拟按钮 
结合Vuforia 虚拟按钮制作教程,在该方法下添加对应事件。 

复制代码
/// <summary>
/// Called when the virtual button has just been pressed:
/// </summary>
public void OnButtonPressed(VirtualButtonAbstractBehaviour vb)
{
if (!button_audio.isPlaying) {
button_audio.Play();
}
if (button_audio.isPlaying) {
button_audio.volume=1;
}
Debug.Log("OnButtonPressed::" + vb.VirtualButtonName);

// Add the material corresponding to this virtual button
// to the active material list:
switch (vb.VirtualButtonName)
{
case "one":
//myObject.transform.animation.Play();
myObject.transform.animation.Play("Take 4");
labelname = "one -> Run!";
if (!button_audio.isPlaying) {
button_audio.Play();
}
if (button_audio.isPlaying) {
button_audio.volume=1;
}
break;

case "two":
myObject.transform.animation.Play("Take 002");
labelname = "two -> Nothing!";
if (!button_audio.isPlaying) {
button_audio.Play();
}
break;

case "three":
//myObject.transform.animation.Play("Take 4");
myObject.transform.animation.Play();
labelname = "three -> Stand!";
if (!button_audio.isPlaying) {
button_audio.Play();
}
break;

case "four":
myObject.transform.animation.Play("Take 5");
labelname = "four -> Hello!";
if (!button_audio.isPlaying) {
button_audio.Play();
}
break;

}
}
2、模型出现 
 
DefaultTrackableEventHandler脚本中,OnTrackingFound方法触发。 

复制代码
private void OnTrackingFound()
{
if (!baymax_audio.isPlaying) {
baymax_audio.Play ();
}
if (baymax_audio.isPlaying) {
baymax_audio.volume = 60;
}

Renderer[] rendererComponents = GetComponentsInChildren<Renderer>(true);
Collider[] colliderComponents = GetComponentsInChildren<Collider>(true);

// Enable rendering:
foreach (Renderer component in rendererComponents)
{
component.enabled = true;
}

// Enable colliders:
foreach (Collider component in colliderComponents)
{
component.enabled = true;
}
Debug.Log("Trackable " + mTrackableBehaviour.TrackableName + " found");
}
3、按钮事件 
 

总结: 
1、Unity3D播放音频处理方式一样 
 if (!button_audio.isPlaying) { 
 button_audio.Play(); 
 } 
2、对AR场景中,音效触发事件的不同