示例#1
0
    public void addTileSwap(TileBase swapTile, float swapTime, Vector3Int position)
    {
        TileSwapInfo info = new TileSwapInfo(swapTile, swapTime, position);

        swaps.Add(info);
        positionToSwapInfo.Add(position, info);
    }
示例#2
0
    public void moveSwap(Vector3Int from, Vector3Int to)
    {
        if (!positionToSwapInfo.ContainsKey(from))
        {
            return;
        }
        TileSwapInfo swap = positionToSwapInfo[from];

        removeSwap(swap.position);
        addTileSwap(swap.swapTile, swap.swapTime, to);
    }
示例#3
0
    void Update()
    {
        while (true)
        {
            if (swaps.Count == 0)
            {
                return;
            }
            TileSwapInfo swap = swaps[0];

            if (swap.swapTime <= Time.time)
            {
                positionToSwapInfo.Remove(swap.position);
                swaps.RemoveAt(0);
                tilemap.SetTile(swap.position, swap.swapTile);
            }
            else
            {
                break;
            }
        }
    }