コード例 #1
0
ファイル: EmojiCenter.cs プロジェクト: gsoec/lm-source
    // Token: 0x060005C1 RID: 1473 RVA: 0x0007F95C File Offset: 0x0007DB5C
    private bool AddEmojiSprite(ushort Iconid)
    {
        EmojiCenter.EmojiSprite value = default(EmojiCenter.EmojiSprite);
        value.LayoutID = this.EmojiSpriteLayout.childCount;
        CString cstring = StringManager.Instance.SpawnString(30);

        cstring.ClearString();
        cstring.IntToFormat((long)Iconid, 5, false);
        cstring.AppendFormat("UI/Emoji_icon_{0}");
        AssetBundle assetBundle = AssetManager.GetAssetBundle(cstring, out value.IconABKey);

        StringManager.Instance.DeSpawnString(cstring);
        if (assetBundle == null)
        {
            return(false);
        }
        GameObject gameObject = UnityEngine.Object.Instantiate(assetBundle.mainAsset) as GameObject;

        gameObject.SetActive(false);
        gameObject.transform.SetParent(this.EmojiSpriteLayout, false);
        this.IconIdMapEmojiSprites.Add(Iconid, value);
        return(true);
    }
コード例 #2
0
ファイル: EmojiCenter.cs プロジェクト: gsoec/lm-source
    // Token: 0x060005BD RID: 1469 RVA: 0x0007F50C File Offset: 0x0007D70C
    public EmojiUnit pullIcon(ushort iconid, byte defaultSpriteID = 0, bool isSpriteRenderer = false)
    {
        this.EmojiCenterIni();
        if (!this.IconIdMapEmojiSprites.ContainsKey(iconid) && !this.AddEmojiSprite(iconid))
        {
            iconid = 0;
        }
        EmojiCenter.EmojiSprite emojiSprite = this.IconIdMapEmojiSprites[iconid];
        EmojiUnit emojiUnit;

        if (this.EmojiUnitPoolCount == 0)
        {
            emojiUnit        = new EmojiUnit();
            emojiUnit.poolID = this.EmojiUnitPool.Count;
            this.EmojiUnitPool.Add(emojiUnit);
        }
        else
        {
            emojiUnit        = this.EmojiUnitPool[--this.EmojiUnitPoolCount];
            emojiUnit.poolID = this.EmojiUnitPoolCount;
        }
        emojiUnit.EmojiUnitIni(defaultSpriteID);
        emojiUnit.IconID     = iconid;
        emojiUnit.SpriteMove = this.EmojiSpriteLayout.GetChild(emojiSprite.LayoutID).GetComponent <UISpritesArray>().m_Sprites;
        GameObject gameObject;

        if (isSpriteRenderer)
        {
            if (this.SpriteRendererPoolLayout.childCount == 0)
            {
                gameObject = new GameObject("eicon_sr");
                gameObject.AddComponent <SpriteRenderer>().material = this.EmojiSpriteRendererMaterial;
            }
            else
            {
                gameObject = this.SpriteRendererPoolLayout.GetChild(this.SpriteRendererPoolLayout.childCount - 1).gameObject;
                gameObject.transform.SetParent(null, false);
            }
            emojiUnit.EmojiImage          = null;
            emojiUnit.EmojiSpriteRenderer = gameObject.GetComponent <SpriteRenderer>();
            if (emojiUnit.SpriteMove.Length <= 1)
            {
                emojiUnit.EmojiSpriteRenderer.sprite = emojiUnit.SpriteMove[0];
            }
        }
        else
        {
            if (this.ImagePoolLayout.childCount == 0)
            {
                gameObject = new GameObject("eicon_ig");
                gameObject.AddComponent <Image>().material = this.EmojiImageMaterial;
            }
            else
            {
                gameObject = this.ImagePoolLayout.GetChild(this.ImagePoolLayout.childCount - 1).gameObject;
                gameObject.transform.SetParent(null, false);
            }
            emojiUnit.EmojiSpriteRenderer = null;
            emojiUnit.EmojiImage          = gameObject.GetComponent <Image>();
            emojiUnit.setImagePivot();
        }
        emojiUnit.EmojiTransform = gameObject.transform;
        gameObject.SetActive(true);
        return(emojiUnit);
    }