FittsLaw/Assets/Oculus/LipSync/Scenes/Scripts/EnableSwitch.cs
2018-10-09 20:59:57 -04:00

61 lines
1.8 KiB
C#

using UnityEngine;
public class EnableSwitch : MonoBehaviour
{
public GameObject[] SwitchTargets;
/// <summary>
/// Sets the active GameObject
/// </summary>
/// <returns><c>true</c>, if active was set, <c>false</c> otherwise.</returns>
/// <param name="target">Target.</param>
public bool SetActive<T>(int target) where T : MonoBehaviour
{
if((target < 0) || (target >= SwitchTargets.Length))
return false;
for (int i = 0; i < SwitchTargets.Length; i++)
{
SwitchTargets[i].SetActive(false);
// Disable texture flip or morph target
OVRLipSyncContextMorphTarget lipsyncContextMorph =
SwitchTargets[i].GetComponent<OVRLipSyncContextMorphTarget>();
if (lipsyncContextMorph)
lipsyncContextMorph.enabled = false;
OVRLipSyncContextTextureFlip lipsyncContextTexture =
SwitchTargets[i].GetComponent<OVRLipSyncContextTextureFlip>();
if (lipsyncContextTexture)
lipsyncContextTexture.enabled = false;
}
SwitchTargets[target].SetActive(true);
MonoBehaviour lipsyncContext = SwitchTargets[target].GetComponent<T>();
if (lipsyncContext != null)
{
lipsyncContext.enabled = true;
}
return true;
}
/// <summary>
/// Sets the active GameObject
/// </summary>
/// <returns><c>true</c>, if active was set, <c>false</c> otherwise.</returns>
/// <param name="target">Target.</param>
public bool SetActive(int target)
{
if((target < 0) || (target >= SwitchTargets.Length))
return false;
for (int i = 0; i < SwitchTargets.Length; i++)
SwitchTargets[i].SetActive(false);
SwitchTargets[target].SetActive(true);
return true;
}
}