public override void OnInspectorGUI() { base.OnInspectorGUI(); LevelChangeTrigger l = (LevelChangeTrigger)target; l.LeadstoRandomLevel = EditorGUILayout.Toggle("Leads to Random Lev.", l.LeadstoRandomLevel); if (!l.LeadstoRandomLevel) { l.LevelObject = (GameObject)EditorGUILayout.ObjectField("Level Object", l.LevelObject, typeof(GameObject), true); } }
static void ConvertMagicTrigger(MagicTrigger oldTrigger) { // Get or add MagicTriggerNew MagicTriggerNew newTrigger = oldTrigger.gameObject.GetComponent <MagicTriggerNew>(); if (newTrigger == null) { newTrigger = oldTrigger.gameObject.AddComponent <MagicTriggerNew>(); } else { newTrigger.triggerConditions.Clear(); newTrigger.actionsToTrigger.Clear(); } // Convert old trigger conditions to new TriggerConditions CopyTrigggerConditions(oldTrigger, newTrigger); // Convert old trigger effects to new TriggerActions if (oldTrigger is ForceActivePillarToggle) { ForceActivePillarToggle pillarTrigger = oldTrigger as ForceActivePillarToggle; // Handle active pillar toggle triggers newTrigger.actionsToTrigger.Add(new TriggerAction { action = TriggerActionType.ChangeActivePillar, actionTiming = ActionTiming.OnceWhileOnStay, forwardSameScenePillar = pillarTrigger.forwardSameScenePillar, forwardPillar = pillarTrigger.forwardTriggeredPillar, forwardPillarLevel = pillarTrigger.forwardPillarLevel, forwardPillarName = pillarTrigger.forwardPillarName, backwardSameScenePillar = pillarTrigger.backwardSameScenePillar, backwardPillar = pillarTrigger.backwardTriggeredPillar, backwardPillarLevel = pillarTrigger.backwardPillarLevel, backwardPillarName = pillarTrigger.backwardPillarName }); } else if (oldTrigger is LevelChangeTrigger) { // Handle level change triggers LevelChangeTrigger levelChangeTrigger = oldTrigger as LevelChangeTrigger; newTrigger.actionsToTrigger.Add(new TriggerAction { action = TriggerActionType.ChangeLevel, actionTiming = ActionTiming.OnceWhileOnStay, levelForward = levelChangeTrigger.levelForward, levelBackward = levelChangeTrigger.levelBackward }); } else if (oldTrigger is MagicSpawnDespawnToggle) { // Handle toggle trigger MagicSpawnDespawnToggle toggleTrigger = oldTrigger as MagicSpawnDespawnToggle; if (toggleTrigger.objectsToEnable.Length > 0 || toggleTrigger.objectsToDisable.Length > 0) { newTrigger.actionsToTrigger.Add(new TriggerAction { action = TriggerActionType.ToggleGameObjects, actionTiming = ActionTiming.OnceWhileOnStay, objectsToEnable = DeepListCopy(toggleTrigger.objectsToEnable), objectsToDisable = DeepListCopy(toggleTrigger.objectsToDisable) }); } if (toggleTrigger.scriptsToEnable.Length > 0 || toggleTrigger.scriptsToDisable.Length > 0) { newTrigger.actionsToTrigger.Add(new TriggerAction { action = TriggerActionType.ToggleScripts, actionTiming = ActionTiming.OnceWhileOnStay, scriptsToEnable = DeepListCopy(toggleTrigger.scriptsToEnable), scriptsToDisable = DeepListCopy(toggleTrigger.scriptsToDisable) }); } } else if (oldTrigger is MagicSpawnDespawn) { // Handle spawn despawn triggers MagicSpawnDespawn enableDisableTrigger = oldTrigger as MagicSpawnDespawn; if (enableDisableTrigger.objectsToEnable.Length > 0 || enableDisableTrigger.objectsToDisable.Length > 0) { newTrigger.actionsToTrigger.Add(new TriggerAction { action = TriggerActionType.EnableDisableGameObjects, actionTiming = ActionTiming.OnceWhileOnStay, objectsToEnable = DeepListCopy(enableDisableTrigger.objectsToEnable), objectsToDisable = DeepListCopy(enableDisableTrigger.objectsToDisable) }); } if (enableDisableTrigger.scriptsToEnable.Length > 0 || enableDisableTrigger.scriptsToDisable.Length > 0) { newTrigger.actionsToTrigger.Add(new TriggerAction { action = TriggerActionType.EnableDisableScripts, actionTiming = ActionTiming.OnceWhileOnStay, scriptsToEnable = DeepListCopy(enableDisableTrigger.scriptsToEnable), scriptsToDisable = DeepListCopy(enableDisableTrigger.scriptsToDisable) }); } } // Convert old self-disable effects to new TriggerActions if (oldTrigger.disableGameObjectOnTrigger) { newTrigger.actionsToTrigger.Add(new TriggerAction { action = TriggerActionType.DisableSelfGameObject, actionTiming = ActionTiming.OnceWhileOnStay }); } if (oldTrigger.disableScriptOnTrigger) { newTrigger.actionsToTrigger.Add(new TriggerAction { action = TriggerActionType.DisableSelfScript, actionTiming = ActionTiming.OnceWhileOnStay }); } oldTrigger.enabled = false; }