/// <inheritdoc /> public override void OnInitialize() { _mazeView = FindObjectOfType <MazeView>(); var playerRoomComponent = GetComponent <PlayerRoomComponent>(); if (playerRoomComponent) { _messageReceiver .Receive <MazeSignal.FloorStarted>() .Subscribe(_ => { RaiseTransporter(); }) .AddTo(this); } var enemyRoomComponent = GetComponent <EnemyRoomComponent>(); if (enemyRoomComponent) { // 敵が全滅したら転送システムを起動する enemyRoomComponent .OnRoomCapturedAsync .Subscribe(_ => { RaiseTransporter(); }) .AddTo(this); } TransporterHub.gameObject.GetAsyncStartTrigger().StartAsync().ContinueWith(() => InitTransporters()).Forget(); }
public override void OnInspectorGUI() { base.OnInspectorGUI(); GUILayout.Space(20); serializedObject.Update(); MazeView view = target as MazeView; EditorGUI.BeginChangeCheck(); width = EditorGUILayout.IntSlider("Width", width, 0, 20); height = EditorGUILayout.IntSlider("Height", height, 0, 20); wallCount = EditorGUILayout.IntSlider("Number of walls", wallCount, 0, (width - 1) * (height - 1)); if (GUILayout.Button("Generate Maze") || EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, $"Generate Maze"); MazeBuilder builder = new MazeBuilder(); builder.mazeWidth = width; builder.mazeHeight = height; builder.wallCount = wallCount; view.maze = builder.Build(); } if (GUILayout.Button("Clear Maze")) { Undo.RecordObject(target, $"Clear Maze"); view.maze = null; } serializedObject.ApplyModifiedProperties(); }
public MainController() { game = new Game(); reader = new MazeReader(game); reader.CreateLinks(reader.ReadMaze(1)); mazeView = new MazeView(game); inputView = new InputView(); run(); }
private void Start() { navigation = FindObjectOfType <NavigationController>(); counter = secondsToFail; counterActive = true; view = GetComponent <MazeView>(); }
void OnEnable() { floorPrefabProperty = serializedObject.FindProperty("floorPrefab"); wallPrefabProperty = serializedObject.FindProperty("wallPrefab"); MazeView view = target as MazeView; width = view.maze?.width ?? 10; height = view.maze?.height ?? 10; }
/// <summary> /// 迷宮を実体化する /// </summary> /// <returns></returns> public MazeView Construct(MazeSettings mazeSettings) { var rooms = new Dictionary <int, RoomView>(); var aisles = new Dictionary <int, AisleView>(); MakeRoomView(ref rooms, mazeSettings); // MakeAisleView(ref aisles, rooms); var mazeView = MazeView.Create(_maze, rooms, aisles); return(mazeView); }
/// <summary> /// Maze生成 /// </summary> public void Construct(MazeSettings mazeSettings) { var maze = ConstructMaze(); var view = ConstructMazeView(maze, mazeSettings); _mazeView = view; _mazeView.Initialize(); var entryPoint = maze.GetEntryPoint(); var startRoom = view.Rooms[entryPoint.Id]; _transportSystem.Initialize(startRoom); _isReady = true; Log("Constructed."); }