public void InstantiateLevelObject(LevelObject levelObject) { ELevelObjectType type = levelObject.LevelObjectType; GameObject levelGameObject = InstantiateObject(_currentTheme, type.ToString()); BaseTrigger trigger = null; BaseTriggerListener listener = null; if (levelGameObject != null) { switch (type) { case ELevelObjectType.BUTTON: case ELevelObjectType.PORTAL: case ELevelObjectType.START: case ELevelObjectType.TRAP: case ELevelObjectType.EXIT: trigger = levelGameObject.GetComponent <BaseTrigger>(); levelGameObject.transform.position = new Vector3(levelObject.Position.x, GridSize.y - levelObject.Position.y, 1); trigger.LevelObjectReference = levelObject; break; case ELevelObjectType.DOOR: case ELevelObjectType.PORTALTARGET: listener = levelGameObject.GetComponent <BaseTriggerListener>(); levelGameObject.transform.position = new Vector3(levelObject.Position.x, GridSize.y - levelObject.Position.y, 1); listener.LevelObjectReference = levelObject; break; } } }
public LevelObject(Vector2Int vector2Int, ELevelObjectType type) { Position = vector2Int; LevelObjectType = type; targetReferences = new List <LevelObject>(); }
private LevelObject createLevelObject(int x, int y, string elementType, string elementId, string position) { ELevelObjectType type = (ELevelObjectType)Enum.Parse(typeof(ELevelObjectType), elementType.ToUpper()); return(new LevelObject(new Vector2Int(x, y), type)); }