internal override void OnMouseUp(int button, CellData cellData) { _drawing = false; erasing = false; }
internal override void OnKeyDown(CellData cellData, KeyCode key) { switch (key) { case KeyCode.D: { erasing = true; if (cellData.overlapTiles.Length != 0) { DestroyTile(cellData); } Event.current.Use(); break; } case KeyCode.Q: { foreach (TileBounds tile in cellData.overlapTiles) { var ltw = tile.BoxPointToWorldMatrix(TileBounds.BoundsCorner.Center); var center = ltw.MultiplyPoint(Vector3.zero); tile.gameObject.transform.RotateAround(center, Vector3.up, -90); } Event.current.Use(); break; } case KeyCode.E: { foreach (TileBounds tile in cellData.overlapTiles) { var ltw = tile.BoxPointToWorldMatrix(TileBounds.BoundsCorner.Center); var center = ltw.MultiplyPoint(Vector3.zero); tile.gameObject.transform.RotateAround(center, Vector3.up, 90); } Event.current.Use(); break; } case KeyCode.C: { if (cellData.overlapTiles.Length > 0) { var tile = cellData.overlapTiles[0].gameObject; var prefab = PrefabUtility.GetCorrespondingObjectFromSource(tile.gameObject); owningEditor.activeRotation = tile.transform.rotation.eulerAngles.y; owningEditor.selectedTilePrefab = prefab; owningEditor.Repaint(); } Event.current.Use(); break; } } }
internal override void OnDrawHandles(CellData cellData, Camera camera, out Color boundsColor) { boundsColor = Color.cyan; Handles.Label(cellData.worldPosition, cellData.cell.ToString()); }
internal virtual void OnMouseMove(CellData cellData) { }
internal virtual void OnDrawHandles(CellData cellData, Camera camera, out Color boundsColor) { boundsColor = Color.red; }
internal virtual void OnKeyUp(CellData cellData, KeyCode key) { }
internal virtual void OnMouseUp(int button, CellData cellData) { }