private void Awake() { if (loadedData) { return; } if (GameIsPlaying()) { bool state = (startState == AC_OnOff.On) ? true : false; if (GetComponent <LimitVisibility>()) { limitVisibility = GetComponent <LimitVisibility>(); limitVisibility.isLockedOff = !state; } else if (GetComponent <Renderer>()) { GetComponent <Renderer>().enabled = state; } if (affectChildren) { foreach (Renderer _renderer in GetComponentsInChildren <Renderer>()) { _renderer.enabled = state; } } } }
/** * <summary>Unregisters a LimitVisibility, so that it is no longer updated</summary> * <param name = "_object">The LimitVisibility to unregister</param> */ public void Unregister(LimitVisibility _object) { if (limitVisibilitys.Contains(_object)) { limitVisibilitys.Remove(_object); } }
/** * <summary>Registers a LimitVisibility, so that it can be updated</summary> * <param name = "_object">The LimitVisibility to register</param> */ public void Register(LimitVisibility _object) { if (!limitVisibilitys.Contains(_object)) { limitVisibilitys.Add(_object); } }
public override void OnInspectorGUI() { LimitVisibility _target = (LimitVisibility)target; _target.Upgrade(); int numOptions = _target.limitToCameras.Count; numOptions = EditorGUILayout.DelayedIntField("Number of cameras:", _target.limitToCameras.Count); if (_target.limitToCameras.Count < 0) { numOptions = 0; } if (numOptions < 1) { numOptions = 1; } if (numOptions < _target.limitToCameras.Count) { _target.limitToCameras.RemoveRange(numOptions, _target.limitToCameras.Count - numOptions); } else if (numOptions > _target.limitToCameras.Count) { if (numOptions > _target.limitToCameras.Capacity) { _target.limitToCameras.Capacity = numOptions; } for (int i = _target.limitToCameras.Count; i < numOptions; i++) { _target.limitToCameras.Add(null); } } for (int i = 0; i < _target.limitToCameras.Count; i++) { _target.limitToCameras [i] = (_Camera)CustomGUILayout.ObjectField <_Camera> ("Camera #" + i.ToString() + ":", _target.limitToCameras [i], true, "", "An AC _Camera to limit the GameObject's visibility to"); } _target.negateEffect = CustomGUILayout.Toggle("Negate effect?", _target.negateEffect, "", "If True, then the GameObject will instead be visible when the above cameras are not used"); _target.affectChildren = CustomGUILayout.Toggle("Affect children too?", _target.affectChildren, "", "If True, then child GameObjects will be affected in the same way"); UnityVersionHandler.CustomSetDirty(_target); }
public override float Run() { bool state = false; if (visState == VisState.Visible) { state = true; } if (runtimeObToAffect != null) { LimitVisibility limitVisibility = runtimeObToAffect.GetComponent <LimitVisibility>(); if (limitVisibility) { limitVisibility.isLockedOff = !state; } else { Renderer renderer = runtimeObToAffect.GetComponent <Renderer>(); if (renderer) { renderer.enabled = state; } else { Canvas canvas = runtimeObToAffect.GetComponent <Canvas>(); if (canvas) { canvas.enabled = state; } } } if (affectChildren) { foreach (Renderer _renderer in runtimeObToAffect.GetComponentsInChildren <Renderer>()) { _renderer.enabled = state; } } } return(0f); }
public override void OnInspectorGUI() { LimitVisibility _target = (LimitVisibility)target; _target.Upgrade(); int numOptions = _target.limitToCameras.Count; numOptions = EditorGUILayout.IntField("Number of cameras:", _target.limitToCameras.Count); if (_target.limitToCameras.Count < 0) { numOptions = 0; } if (numOptions < 1) { numOptions = 1; } if (numOptions < _target.limitToCameras.Count) { _target.limitToCameras.RemoveRange(numOptions, _target.limitToCameras.Count - numOptions); } else if (numOptions > _target.limitToCameras.Count) { if (numOptions > _target.limitToCameras.Capacity) { _target.limitToCameras.Capacity = numOptions; } for (int i = _target.limitToCameras.Count; i < numOptions; i++) { _target.limitToCameras.Add(null); } } for (int i = 0; i < _target.limitToCameras.Count; i++) { _target.limitToCameras [i] = (_Camera)EditorGUILayout.ObjectField("Camera #" + i.ToString() + ":", _target.limitToCameras [i], typeof(_Camera), true); } _target.affectChildren = EditorGUILayout.Toggle("Affect children too?", _target.affectChildren); UnityVersionHandler.CustomSetDirty(_target); }
/** * <summary>Unregisters a LimitVisibility, so that it is no longer updated</summary> * <param name = "_object">The LimitVisibility to unregister</param> */ public void Unregister(LimitVisibility _object) { limitVisibilitys.Remove(_object); }
/** * <summary>Registers a LimitVisibility, so that it can be updated</summary> * <param name = "_object">The LimitVisibility to register</param> */ public void Register(LimitVisibility _object) { limitVisibilitys.Add(_object); }
private void Awake() { if (GameIsPlaying ()) { bool state = false; if (startState == AC_OnOff.On) { state = true; } if (GetComponent <LimitVisibility>()) { limitVisibility = GetComponent <LimitVisibility>(); limitVisibility.isLockedOff = !state; } else if (GetComponent <Renderer>()) { GetComponent <Renderer>().enabled = state; } if (affectChildren) { foreach (Renderer _renderer in GetComponentsInChildren <Renderer>()) { _renderer.enabled = state; } } } }