public void EditorFindDungeonPieces() { Modules.Clear(); Transitions.Clear(); int moduleNumber = 0; foreach (Transform module in ModuleParent) { DungeonModule dungeonModule = module.gameObject.GetOrAdd <DungeonModule> (); dungeonModule.ModuleNumber = moduleNumber; dungeonModule.ParentDungeon = this; dungeonModule.OcclusionGroup = dungeonModule.gameObject.GetOrAdd <CullingGroup_Manual> (); dungeonModule.Initialize(); Modules.Add(dungeonModule); moduleNumber++; } int transitionNumber = 0; foreach (Transform transition in TransitionParent) { DungeonTransition dungeonTransition = transition.gameObject.GetOrAdd <DungeonTransition> (); dungeonTransition.ParentDungeon = this; dungeonTransition.TransitionNumber = transitionNumber; dungeonTransition.OcclusionGroup = dungeonTransition.gameObject.GetOrAdd <CullingGroup_Manual> (); dungeonTransition.Initialize(); dungeonTransition.FindTriggers(); Transitions.Add(dungeonTransition); transitionNumber++; } }
public void CreateDungeonTransitions() { if (Template == null) { Debug.Log("TEMPLATE WAS NULL"); return; } for (int i = 0; i < Template.Transitions.InteriorVariants.Count; i++) { //first create the object StructureTemplateGroup dungeonTransitionGroup = Template.Transitions.InteriorVariants [i]; DungeonTransition dungeonTransition = CreateDungeonTransition(i); dungeonTransition.BuildTransition(dungeonTransitionGroup, DungeonGroup); dungeonTransition.FindTriggers(); //move the group into position dungeonTransition.OuterTrigger.OnEnter += OnEnterDungeon; dungeonTransition.OuterTrigger.OnExit += OnExitDungeon; dungeonTransition.InnerTrigger.OnExit += OnExitTransition; dungeonTransition.InnerTrigger.OnEnter += OnEnterTransition; dungeonTransition.transform.localPosition = dungeonTransitionGroup.GroupOffset; dungeonTransition.transform.localRotation = Quaternion.Euler(dungeonTransitionGroup.GroupRotation); } }