61 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
|