Files
JJBB/Assets/Project/Script/GUI/Message/SceneItemUseTip.cs
2024-08-23 15:49:34 +08:00

85 lines
2.5 KiB
C#

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<SceneItemUseChild> _Show_ItemGameObjs = new List<SceneItemUseChild>();
List<SceneItemUseChild> _Hide_ItemGameObjs = new List<SceneItemUseChild>();
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<int, Tab_SceneItemUse> 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<SceneItemUseChild>(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;
}
}