private static TriggerZonePhysics CreateTriggerPhysic() { GameObject triggerGameObject = CreateGameObject("Trigger Physic", typeof(TriggerZonePhysics)); TriggerZonePhysics trigger = triggerGameObject.GetComponent <TriggerZonePhysics>(); ExtGameObjectIcon.SetIcon(triggerGameObject, ExtGameObjectIcon.Icon.CircleYellow); SerializedObject triggerObject = new SerializedObject(trigger); BoxCollider collider = trigger.gameObject.AddComponent <BoxCollider>(); collider.isTrigger = true; ExampleAction action = AddActionGuid(trigger); LinkActionToTriggerZoneArray(trigger, triggerObject, action); return(trigger); }
private static void PopulateSystem() { if (GameObject.FindObjectOfType <DependencyInjectorSingleton>()) { Debug.LogError("There is already a DependencyInjectorSingleton in the scene!"); return; } GameObject systemParent = new GameObject("[Action Trigger] System"); GameObject dependencyInjectorSingleton = new GameObject("DependencyInjectorSingleton (must be only one)", typeof(DependencyInjectorSingleton)); dependencyInjectorSingleton.transform.SetParent(systemParent.transform); GameObject entityLister = new GameObject("Entity Lister (keep track of every EntityBase in every Scenes)", typeof(EntityListerInScenes)); entityLister.transform.SetParent(systemParent.transform); Undo.RegisterCreatedObjectUndo(systemParent, systemParent.name); Selection.activeGameObject = null; TriggerZoneNoPhysics zoneNoPhysics = CreateTrigger(); zoneNoPhysics.gameObject.name = "[Action Trigger] Zone With Custom OnEnter/Exit Calculation"; Selection.activeGameObject = null; TriggerZonePhysics zonePhysics = CreateTriggerPhysic(); zonePhysics.gameObject.name = "[Action Trigger] Zone using OnEnter/Exit of the physic engine"; zonePhysics.transform.position += new Vector3(3, 0, 0); Selection.activeGameObject = null; Entity entity = CreateEntity(); entity.gameObject.name = "[Action Trigger] Entity"; entity.transform.position += new Vector3(0, 0, 3); Selection.activeGameObject = null; Entity entityPhysic = CreateEntityPhysic(); entityPhysic.gameObject.name = "[Action Trigger] Entity with RigidBody"; entityPhysic.transform.position += new Vector3(3, 0, 3); }