using System.Collections; using System.Collections.Generic; using UnityEngine; namespace MoreMountains.Tools { /// <summary> /// Use this class to enable or disable other gameobjects automatically on Start or Awake /// </summary> [AddComponentMenu("More Mountains/Tools/Activation/MMActivationOnStart")] public class MMActivationOnStart : MonoBehaviour { /// The possible modes that define whether this should run at Awake or Start public enum Modes { Awake, Start } /// the selected mode for this instance public Modes Mode = Modes.Start; /// if true, objects will be activated on start, disabled otherwise public bool StateOnStart = true; /// the list of gameobjects whose active state will be affected on start public List<GameObject> TargetObjects; /// <summary> /// On Awake, we set our state if needed /// </summary> protected virtual void Awake() { if (Mode != Modes.Awake) { return; } SetState(); } /// <summary> /// On Start, we set our state if needed /// </summary> protected virtual void Start() { if (Mode != Modes.Start) { return; } SetState(); } /// <summary> /// Sets the state of all target objects /// </summary> protected virtual void SetState() { foreach (GameObject obj in TargetObjects) { obj.SetActive(StateOnStart); } } } }