void OnGUI() { if (board != null) { Event e = Event.current; switch (e.type) { case EventType.keyDown: if ((e.keyCode == KeyCode.A || e.keyCode == KeyCode.LeftArrow) && areKeysUp) { board.MoveShapeLeft(); areKeysUp = false; } else if ((e.keyCode == KeyCode.D || e.keyCode == KeyCode.RightArrow) && areKeysUp) { board.MoveShapeRight(); areKeysUp = false; } else if (e.keyCode == KeyCode.J || e.keyCode == KeyCode.Z) { board.RotateShape(TetrisShape.RotateDirection.CounterClockwise); } else if (e.keyCode == KeyCode.L || e.keyCode == KeyCode.C) { board.RotateShape(TetrisShape.RotateDirection.Clockwise); } else if (e.keyCode == KeyCode.Space && areKeysUp) { board.DropShape(); areKeysUp = false; } break; case EventType.keyUp: areKeysUp = true; break; } board.Draw(); } else { if (GUILayout.Button("New Game?")) { board = ScriptableObject.CreateInstance <TetrisBoard>(); board.parentWindow = this; } } }