示例#1
0
    void Awake()
    {
        for (int i = 0; i < TileMap.Length; i++)
        {
            TileMap[i].CompressBounds();
        }

        Instance = this;
    }
示例#2
0
    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();
    }
示例#3
0
    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);
    }
示例#4
0
    // 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;
        }
	}
示例#6
0
    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;
            }
        }
    }
示例#7
0
        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.



            //}
        }
示例#8
0
        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));
            }
        }