85 lines
2.5 KiB
C#
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;
|
|
}
|
|
}
|