Пример #1
0
        /// <summary>
        /// Traverses up the parent transforms until it finds a parent that can be triggered.
        /// </summary>
        /// <returns>A game object that implements TriggerableParent.</returns>
        private ITriggerableParent GetParent()
        {
            if (triggerParent != null)
            {
                return(triggerParent);
            }

            ITriggerableParent tParent = transform.parent.gameObject.GetComponent <ITriggerableParent>();

            if (tParent == null)
            {
                Transform parent = transform.parent;

                while (tParent == null && parent != null && transform.parent != null)
                {
                    parent = parent.transform.parent;

                    tParent = transform.parent.gameObject.GetComponent <ITriggerableParent>();
                }
            }

            if (tParent == null)
            {
                throw new NullReferenceException("Could not find a trigger parent for " + gameObject.name + ".");
            }

            triggerParent = tParent;
            return(triggerParent);
        }
Пример #2
0
 private void Awake()
 {
     triggerParent = GetParent();
 }