예제 #1
0
    public void OnSceneGUI()
    {
        hallway.PositionUpdate();

        int[] gridSize = hallway.GridSize;

        for (int i = 0; i < gridSize[0]; i++)
        {
            for (int j = 0; j < gridSize[1]; j++)
            {
                Handles.color = StateColor(i, j);
                Vector3 absolutePosition = hallway.GetPosition(i, j);

                if (hallway.HasAdjacents(i, j) && Handles.Button(absolutePosition, Quaternion.identity, 0.5f, 0.5f, Handles.CubeHandleCap))
                {
                    hallway.SwitchState(i, j, MaskState.FILL);
                    hallway.DrawGeometry();
                    SceneUpdater.UpdateScene();
                }

                var state = hallway.GetState(i, j);
                if (NeedsToDrawCube(state))
                {
                    Handles.color = ColorForState(state);
                    Vector3 cubePosition = new Vector3(absolutePosition.x, DoorDefinition.GlobalSize / 2f, absolutePosition.z);
                    Handles.CubeHandleCap(0, cubePosition, Quaternion.identity, DoorDefinition.GlobalSize, EventType.Repaint);
                }
            }
        }
    }