topical media & game development

talk show tell print

lib-unity-tutorial-m2h-2-Assets-Standard-Assets-Scripts-ActivateTrigger.cs / cs



  using UnityEngine;
  
  public class ActivateTrigger : MonoBehaviour {
          public enum Mode {
                  Trigger   = 0, // Just broadcast the action on to the target
                  Replace   = 1, // replace target with source
                  Activate  = 2, // Activate the target GameObject
                  Enable    = 3, // Enable a component
                  Animate   = 4, // Start animation on target
                  Deactivate= 5 // Decativate target GameObject
          }
  
  
The action to accomplish public Mode action = Mode.Activate;

  
The game object to affect. If none, the trigger work on this game object public Object target; public GameObject source; public int triggerCount = 1;


public bool repeatTrigger = false; void DoActivateTrigger () { triggerCount--;

                  if (triggerCount == 0 || repeatTrigger) {
                          Object currentTarget = target != null ? target : gameObject;
                          Behaviour targetBehaviour = currentTarget as Behaviour;
                          GameObject targetGameObject = currentTarget as GameObject;
                          if (targetBehaviour != null)
                                  targetGameObject = targetBehaviour.gameObject;
                  
                          switch (action) {
                                  case Mode.Trigger:
                                          targetGameObject.BroadcastMessage ("DoActivateTrigger");
                                          break;
                                  case Mode.Replace:
                                          if (source != null) {
                                                  Object.Instantiate (source, targetGameObject.transform.position, targetGameObject.transform.rotation);
                                                  DestroyObject (targetGameObject);
                                          }
                                          break;
                                  case Mode.Activate:
                                          targetGameObject.active = true;
                                          break;
                                  case Mode.Enable:
                                          if (targetBehaviour != null)
                                                  targetBehaviour.enabled = true;
                                          break;        
                                  case Mode.Animate:
                                          targetGameObject.animation.Play ();
                                          break;        
                                  case Mode.Deactivate:
                                          targetGameObject.active = false;
                                          break;
                          }
                  }
          }
  
          void OnTriggerEnter (Collider other) {
                  DoActivateTrigger ();
          }
  }


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.