void Awake() { for (int i = 0; i < TileMap.Length; i++) { TileMap[i].CompressBounds(); } Instance = this; }
public override void OnInspectorGUI() { TilePainter me = (TilePainter)target; GUILayout.Label("Assign a prefab to the color property"); GUILayout.Label("or the pallete array."); GUILayout.Label("drag : paint tiles"); GUILayout.Label("[s]+click : sample tile color"); GUILayout.Label("[x]+drag : erase tiles"); GUILayout.Label("[space] : rotate tile"); GUILayout.Label("[b] : cycle color"); if (GUILayout.Button("CLEAR")) { me.Clear(); } DrawDefaultInspector(); }
private bool AmHovering(Event e) { TilePainter me = (TilePainter)target; RaycastHit hit; if (Physics.Raycast(HandleUtility.GUIPointToWorldRay(Event.current.mousePosition), out hit, Mathf.Infinity) && hit.collider.GetComponentInParent <TilePainter>() == me) { me.cursor = me.GridV3(hit.point); me.focused = true; Renderer rend = me.gameObject.GetComponentInChildren <Renderer>( ); if (rend) { EditorUtility.SetSelectedWireframeHidden(rend, false); } return(true); } me.focused = false; return(false); }
// Use this for initialization void Start() { var tileMap = GetComponent <TileMapBehaviour>(); if (tileMap == null) { Debug.LogError("TileMap not found"); return; } tileMap.MeshSettings = new TileMeshSettings { TileResolution = m_tileSize, TilesX = 30, TilesY = 20 }; // enable line of sight graphics tileMap.EnableVisibility(); // create two tiles int wallId = tileMap.TileSheet.Add(TilePainter.CreateTileSprite(Color.black, m_tileSize)); int floorId = tileMap.TileSheet.Add(TilePainter.CreateTileSprite(Color.gray, m_tileSize)); // create walls and floor var painter = new TilePainter(tileMap); painter.Fill(floorId); painter.DrawRectangle(0, 0, tileMap.MeshSettings.TilesX, tileMap.MeshSettings.TilesY, wallId); // create some random blocks that will block sight for (int i = 0; i < m_obstacleCount; i++) { var x = Random.Range(1, tileMap.MeshSettings.TilesX - 2); var y = Random.Range(1, tileMap.MeshSettings.TilesY - 2); tileMap[x, y] = wallId; } }
// Use this for initialization void Start () { var tileMap = GetComponent<TileMapBehaviour>(); if (tileMap == null) { Debug.LogError("TileMap not found"); return; } tileMap.MeshSettings = new TileMeshSettings { TileResolution = m_tileSize, TilesX = 30, TilesY = 20 }; // enable line of sight graphics tileMap.EnableVisibility(); // create two tiles int wallId = tileMap.TileSheet.Add(TilePainter.CreateTileSprite(Color.black, m_tileSize)); int floorId = tileMap.TileSheet.Add(TilePainter.CreateTileSprite(Color.gray, m_tileSize)); // create walls and floor var painter = new TilePainter(tileMap); painter.Fill(floorId); painter.DrawRectangle(0, 0, tileMap.MeshSettings.TilesX, tileMap.MeshSettings.TilesY, wallId); // create some random blocks that will block sight for (int i = 0; i < m_obstacleCount; i++) { var x = Random.Range(1, tileMap.MeshSettings.TilesX - 2); var y = Random.Range(1, tileMap.MeshSettings.TilesY - 2); tileMap[x, y] = wallId; } }
public void ProcessEvents() { TilePainter me = (TilePainter)target; int controlID = GUIUtility.GetControlID(1778, FocusType.Passive); EditorWindow currentWindow = EditorWindow.mouseOverWindow; if (currentWindow && AmHovering(Event.current)) { Event current = Event.current; bool leftbutton = (current.button == 0); switch (current.type) { case EventType.KeyDown: if (current.keyCode == KeyCode.S) { operation = TileOperation.Sampling; } if (current.keyCode == KeyCode.X) { operation = TileOperation.Erasing; } current.Use(); return; case EventType.KeyUp: operation = TileOperation.None; if (current.keyCode == KeyCode.Space) { me.Turn(); } if (current.keyCode == KeyCode.B) { me.CycleColor(); } current.Use(); return; case EventType.MouseDown: if (leftbutton) { if (operation == TileOperation.None) { operation = TileOperation.Drawing; } me.Drag(current.mousePosition, operation); current.Use(); return; } break; case EventType.MouseDrag: if (leftbutton) { if (operation != TileOperation.None) { me.Drag(current.mousePosition, operation); current.Use(); } return; } break; case EventType.MouseUp: if (leftbutton) { operation = TileOperation.None; current.Use(); return; } break; case EventType.MouseMove: me.Resize(); current.Use(); break; case EventType.Repaint: break; case EventType.Layout: HandleUtility.AddDefaultControl(controlID); break; } } }
private void DrawPixelListInTilemap(ref Tilemap tilemap, List <Point> points, TilePainter tileData, CountDownRoot root) { tileData.Init(tilemap); foreach (Point point in points) { //tileData.Paint(new Vector3Int(point.x, -point.y, 0), root); } ////if (tileData == null) ////{ //// Debug.Log("tile data not set in specified map"); ////} //else //{ // //new Vector3Int((int)xOffset + point.x, (int)(yOffset - point.y * hRatio), 0); // //Init the object with the tilemap, if it is a rule tile it uses it to be attached to // //if it is a worlf object it uses it to set it's location. //} }
private void DrawPixelListInTilemap(ref Tilemap tilemap, List <Point> points, TilePainter tileData) { //Debug.unityLogger.Log(TAG, "DrawPixelListInTilemap()"); tileData.Init(tilemap); foreach (Point point in points) { tileData.Paint(new Vector3Int(point.x, point.y, 0)); } }