123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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;
- }
- }
|