Пример #1
0
        /// <summary>
        /// The character has exited a trigger zone.
        /// </summary>
        /// <param name="demoZoneTrigger">The trigger zone that the character exited.</param>
        public void ExitedTriggerZone(DemoZoneTrigger demoZoneTrigger)
        {
            DemoZone demoZone;

            if (!m_DemoZoneTriggerDemoZoneMap.TryGetValue(demoZoneTrigger, out demoZone))
            {
                return;
            }
            for (int i = 0; i < demoZone.ToggleObjects.Length; ++i)
            {
                demoZone.ToggleObjects[i].SetActive(false);
            }
            for (int i = 0; i < demoZone.InverseToggleObjects.Length; ++i)
            {
                if (demoZone.InverseToggleObjects[i] == null)
                {
                    continue;
                }
                demoZone.InverseToggleObjects[i].SetActive(true);
            }
            m_ActiveZoneIndices.Remove(demoZone.Index);

            // Show standard text if the demo zone isn't the last demo zone.
            if (m_ActiveZoneIndices.Count == 0 && (m_AddOnDemoManager || demoZone.Index != m_DemoZones.Length - 1) && m_EnterFrame != Time.frameCount)
            {
                ShowText(m_NoZoneTitle.Replace("{AssetName}", AssetInfo.Name), m_NoZoneDescription, string.Empty);
            }
            else if (m_ActiveZoneIndices.Count > 0 && m_LastZoneIndex != m_ActiveZoneIndices[m_ActiveZoneIndices.Count - 1])
            {
                ActivateDemoZone(m_DemoZones[m_ActiveZoneIndices[m_ActiveZoneIndices.Count - 1]], false);
            }
        }
Пример #2
0
        /// <summary>
        /// The character has entered a trigger zone.
        /// </summary>
        /// <param name="demoZoneTrigger">The trigger zone that the character entered.</param>
        public void EnteredTriggerZone(DemoZoneTrigger demoZoneTrigger)
        {
            DemoZone demoZone;

            if (!m_DemoZoneTriggerDemoZoneMap.TryGetValue(demoZoneTrigger, out demoZone))
            {
                return;
            }

            if (m_CharacterHealth != null && m_CharacterHealth.Value == 0)
            {
                return;
            }

            ActiveDemoZone(demoZone, false);
        }
Пример #3
0
        /// <summary>
        /// The character has entered a trigger zone.
        /// </summary>
        /// <param name="demoZoneTrigger">The trigger zone that the character entered.</param>
        /// <param name="other">The GameObject that entered the trigger.</param>
        /// <returns>Did the character successfully enter the trigger?</returns>
        public bool EnteredTriggerZone(DemoZoneTrigger demoZoneTrigger, GameObject other)
        {
            var characterLocomotion = other.GetComponentInParent <UltimateCharacterLocomotion>();

            if (characterLocomotion == null || characterLocomotion.gameObject != m_Character)
            {
                return(false);
            }

            if (!m_DemoZoneTriggerDemoZoneMap.TryGetValue(demoZoneTrigger, out var demoZone))
            {
                return(false);
            }

            if (m_CharacterHealth != null && m_CharacterHealth.Value == 0)
            {
                return(false);
            }

            return(ActivateDemoZone(demoZone, false));
        }