using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using System.Collections; using System.Collections.Generic; using GCGame.Table; using Games.Events; public class SceneItemUseTip : MonoBehaviour { public SceneItemUseChild ItemObj; private static SceneItemUseTip m_Instance; public static SceneItemUseTip Instance() { return m_Instance; } private void Awake() { m_Instance = this; } private void OnDestory() { m_Instance = null; } List _Show_ItemGameObjs = new List(); List _Hide_ItemGameObjs = new List(); public void ShowSceneItems() { for(int i=0;i< _Show_ItemGameObjs.Count;i++) { _Show_ItemGameObjs[i].gameObject.SetActive(false); } _Hide_ItemGameObjs.AddRange(_Show_ItemGameObjs); _Show_ItemGameObjs.Clear(); Tab_Fuben fuben = WorldBossData.Instance.GetFubenInfo(); if (fuben == null) return; WorldBossData.Instance.InitSceneBossList(); Dictionary tab_SceneItemUses = TableManager.GetSceneItemUse(); foreach(var sceneItem in tab_SceneItemUses) { if (sceneItem.Value.FubenScript != fuben.ScriptID) continue; Tab_CommonItem commonItem = TableManager.GetCommonItemByID(sceneItem.Value.Id, 0); if (commonItem == null) continue; Games.Item.GameItem gameItem = GameManager.gameManager.PlayerDataPool.BackPack.GetItemByDataID(commonItem.Id); ShowSceneItem(gameItem); } } private bool ShowSceneItem(Games.Item.GameItem gameItem) { if (gameItem == null || gameItem.IsValid() == false) return false; SceneItemUseChild newObj = null; if(_Hide_ItemGameObjs.Count > 0) { newObj = _Hide_ItemGameObjs[0]; _Hide_ItemGameObjs.RemoveAt(0); } else { newObj = GameObject.Instantiate(ItemObj); newObj.transform.SetParent(ItemObj.transform.parent); newObj.transform.localPosition = Vector3.zero; newObj.transform.localScale = Vector3.one; } if (newObj != null) { if (newObj.Show(gameItem)) _Show_ItemGameObjs.Add(newObj); else _Hide_ItemGameObjs.Add(newObj); } return true; } }