Esempio n. 1
0
    /// <summary>
    /// Init all button with assetbundle tile
    /// /// </summary>
    void InitScrollViewButton(LayerDepth _layerDepth)
    {
        TileBase[] tilesBase = null;
        bool       isFirst   = true;

        switch (_layerDepth)
        {
        case LayerDepth.Tile:
            tilesBase = AssetManager.Instance.GetAllTile();
            break;

        case LayerDepth.Object:
            tilesBase = AssetManager.Instance.GetAllObject();
            break;
        }

        if (tilesBase == null)
        {
            Debug.LogAssertion("InitScrollViewButton :: tilesBase == null");
            return;
        }

        foreach (TileBase tilebase in tilesBase)
        {
            // Set GameObject
            GameObject gButton  = GameObject.Instantiate(footerButtonPrefabs, SelectTileViewParent(_layerDepth));
            Button     uiButton = gButton.GetComponent <Button>();
            gButton.transform.name = SelectTileViewName(_layerDepth) + tilebase.name;
            gButton.GetComponentInChildren <Text>().text = tilebase.name;

            // Get TileType
            TileUtils.TileType tileType = TileUtils.ParseTileTypeName(tilebase.GetType().ToString());

            // Set button callback :: warning layerdepth define by tiletype it can be source of bug in the future if more tiletype will add
            uiButton.onClick.AddListener(delegate { SetSelectTileName(tilebase.name, _layerDepth); });

            Sprite sprite = null;
            AssetManager.SetSpriteByType(tilebase, out sprite);

            if (sprite)
            {
                gButton.GetComponentInChildren <Image>().sprite = sprite;

                if (isFirst)
                {
                    selectedTileViewer.sprite = sprite;
                    isFirst = false;
                }
            }
            else
            {
                Debug.LogError(tilebase.name + " sprite is null");
            }
        }
    }
Esempio n. 2
0
    public static void SetSpriteByType(TileBase _tileBase, out Sprite _sprite)
    {
        TileUtils.TileType tileType = TileUtils.ParseTileTypeName(_tileBase.GetType().ToString());

        switch (tileType)
        {
        case TileUtils.TileType.RuleTile:
            RuleTile ruteTile = (RuleTile)_tileBase;
            _sprite = ruteTile.m_DefaultSprite;
            break;

        case TileUtils.TileType.Tile:
            Tile tile = (Tile)_tileBase;
            _sprite = tile.sprite;
            break;

        default:
            Debug.LogError("Tile type is null " + tileType);
            _sprite = null;
            break;
        }
    }