/// <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); } }
/// <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); }
/// <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)); }