//--------------------------------------------------------------------------------------------/
        // Static Methods
        //--------------------------------------------------------------------------------------------/
        /// <summary>
        /// Instantiates this behaviour at runtime, adding it to the managed behaviour system
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        public static T Instantiate <T>() where T : ManagedBehaviour
        {
            T behaviour = Instantiate <T>();

            ManagedBehaviourSystem.Add(behaviour);
            return(behaviour);
        }
 //--------------------------------------------------------------------------------------------/
 // Methods
 //--------------------------------------------------------------------------------------------/
 private void Awake()
 {
     ManagedBehaviourSystem.Add(this);
     this.OnManagedAwake();
 }