Fabric Manual APIExamples API

Examples API

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class ExamplesAPI : MonoBehaviour 
{
    public int eventID;
	// Use this for initialization
	void Start () {}
	
	// Update is called once per frame
	void Update () 
	{
		// Example 1: Posting an event
		if(Input.GetKeyDown(KeyCode.Alpha1)) 
		{
			/////////////////////////////////////////////////////////////
			// This event by default will send the PlaySound EventAction.
			// The gameObject used is the one that has the FabricManager
            Fabric.EventManager.Instance.PostEvent("Simple");
		}
		// Example 2: Posting an event with a gameObject
		else if(Input.GetKeyDown(KeyCode.Alpha2)) 
		{
			/////////////////////////////////////////////////////////////
			// This event by default will send the PlaySound EventAction.
			// The gameObject passed is used to track position and associated with an instance if max instances property is set
			
			Fabric.EventManager.Instance.PostEvent("Simple", gameObject);
		}
		// Example 3: Posting an event with a PlaySound action and a gameObject
		else if(Input.GetKeyDown(KeyCode.Alpha3)) 
		{
			Fabric.EventManager.Instance.PostEvent("Simple", Fabric.EventAction.PlaySound, null, gameObject);
		}
		// Example 4: Posting a stop sound event action
		else if(Input.GetKeyDown(KeyCode.Alpha4)) 
		{
			Fabric.EventManager.Instance.PostEvent("Simple", Fabric.EventAction.StopSound, null, gameObject);
		}
		// Example 5: Posting a timeline SetParameter value
		else if(Input.GetKeyDown(KeyCode.Alpha5)) 
		{
			Fabric.EventManager.Instance.SetParameter("Timeline", "Parameter", 0.5f, gameObject);
		}
		// Example 6: Posting a SetDSPParameter value
		else if(Input.GetKeyDown(KeyCode.Alpha6)) 
		{
			Fabric.EventManager.Instance.SetDSPParameter("Event", Fabric.DSPType.LowPass, "CutoffFrequency", 5000, 5, 0.5f, gameObject);
		}
		// Example 7: Adding dynamic mixer preset
		else if(Input.GetKeyDown(KeyCode.Alpha7)) 
		{
			// The event name must be "DynamicMixer"
			Fabric.EventManager.Instance.PostEvent ( "DynamicMixer", Fabric.EventAction.AddPreset, "MuteAll", null ) ;
			
			Fabric.EventManager.Instance.PostEvent ( "DynamicMixer", Fabric.EventAction.AddPreset, "MuteAll", null ) ;
		}
		// Example 8: Removing dynamic mixer preset
		else if(Input.GetKeyDown(KeyCode.Alpha8)) 
		{
			// The event name must be "DynamicMixer"
			Fabric.EventManager.Instance.PostEvent ( "DynamicMixer", Fabric.EventAction.RemovePreset, "MuteAll", null ) ;
		}       
		// Example 9: Get component by name, setting volume, querying if component is playing and if not play it
		else if(Input.GetKeyDown(KeyCode.Alpha9))
		{
			Fabric.Component component = Fabric.FabricManager.Instance.GetComponentByName("Audio_Fabric_SFX_Test");
		
			if(component != null)
			{
				component.Volume = 0.5f;
				
				if(component.IsPlaying() == false)
				{
					component.Play(gameObject);
				}
			}
		}
		// Loading prefab that has Fabric components into the Fabric hiearchy with a target path
		else if(Input.GetKeyDown(KeyCode.A))
		{
			Fabric.FabricManager.Instance.LoadAsset("NameOfPrefab","Audio_SFX");
		}
		// Unloading component from the Fabric hiearchy
		else if(Input.GetKeyDown(KeyCode.B))
		{
			Fabric.FabricManager.Instance.UnloadAsset("Audio_SFX");
		}
		// Initialise default component parameters (ideal for setting parameters in animation systems) 
		else if(Input.GetKeyDown(KeyCode.C)) 
		{
			Fabric.InitialiseParameters parameters = new Fabric.InitialiseParameters();
			
			parameters._pitch.Value = 2.0f;
				
			Fabric.EventManager.Instance.PostEvent("Simple",Fabric.EventAction.PlaySound, null, gameObject, parameters);
		}
        // Check if an event is playing
        else if (Input.GetKeyDown(KeyCode.D))
        {
            if (Fabric.EventManager.Instance.IsEventActive("Simple", gameObject))
            {
                Debug.Log("Event Simple is Active");
            }
            else
            {
                Debug.Log("Event Simple is Inactive");
            }
        }
		else if(Input.GetKeyDown(KeyCode.E))
		{
			Fabric.Component[] components = Fabric.FabricManager.Instance.GetComponentsByName("Audio_Simple", gameObject);
		
			if(components != null && components.Length> 0)
			{
				components[0].Volume = 0.5f;
				
				if(components[0].IsPlaying() == true)
				{
					Debug.Log("Component is playing");
				}
			}
		}
        if (Input.GetKeyDown(KeyCode.F))
        {
            eventID = Fabric.EventManager.GetIDFromEventName("Simple");
            Fabric.EventManager.Instance.PostEvent(eventID, gameObject);
        }
    }
}