82 lines
2.6 KiB
C#
82 lines
2.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// 正在使用的工具/材料管理类
|
|
/// </summary>
|
|
public class ToolAndmaterialMgr : BaseManager<ToolAndmaterialMgr>
|
|
{
|
|
//该系统所需要使用的全部工器具和材料
|
|
|
|
public List<D_ToolAndMaterialData> toolAndMaterialList = new List<D_ToolAndMaterialData>();
|
|
|
|
private ToolAndmaterialMgr()
|
|
{
|
|
}
|
|
|
|
public void Init(string toolOrMaterilOrDevice)
|
|
{
|
|
toolAndMaterialList = GameManager.DataMgr.GetCurrentSystemToolAndMaterials(toolOrMaterilOrDevice);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取指定工具
|
|
/// </summary>
|
|
/// <param name="objName"></param>
|
|
/// <returns></returns>
|
|
public D_ToolAndMaterialData GetToolOrMaterialOrDeviceInfoByObjName(string objName)
|
|
{
|
|
for (int i = 0; i < toolAndMaterialList.Count; i++)
|
|
{
|
|
if (toolAndMaterialList[i].objName == objName)
|
|
return toolAndMaterialList[i];
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取场景中ItemInfo (仅在在工具间场景调用)
|
|
/// </summary>
|
|
/// <param name="objName"></param>
|
|
/// <returns></returns>
|
|
public List<Tool_SelectComponent> GetItemInfoByName(List<string> objNamelist)
|
|
{
|
|
List<Tool_SelectComponent> tmps= new List<Tool_SelectComponent>();
|
|
objNamelist.ForEach(objName =>
|
|
{
|
|
Tool_SelectComponent tmp = GameObject.FindObjectsOfType<Tool_SelectComponent>().ToList().Find(a => a.gameObject.name == objName);
|
|
tmps.Add(tmp);
|
|
});
|
|
|
|
return tmps;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 生成iteminfo (在其他场景调用)
|
|
/// </summary>
|
|
/// <param name="objName"></param>
|
|
/// <returns></returns>
|
|
public List<ItemInfo> CreateItemInfoByName(List<string> objNamelist)
|
|
{
|
|
List<ItemInfo> infos = new List<ItemInfo>();
|
|
objNamelist.ForEach(objName =>
|
|
{
|
|
D_ToolAndMaterialData dTMD = GetToolOrMaterialOrDeviceInfoByObjName(objName);
|
|
ItemInfo itemInfo = new ItemInfo();
|
|
if (dTMD != null)
|
|
{
|
|
itemInfo.toolId = dTMD.id;
|
|
itemInfo.triggerID = dTMD.id;
|
|
itemInfo.toolName = dTMD.objName;
|
|
itemInfo.toolOrDeviceOrMaterial = (E_ToolOrDeviceOrMaterials)dTMD.type;
|
|
itemInfo.objPrefab = Resources.Load<GameObject>("Prefabs/Objects/Tools/" + objName);
|
|
//itemInfo.selfPosInToolRoom = transform.position;
|
|
infos.Add(itemInfo);
|
|
}
|
|
});
|
|
|
|
return infos;
|
|
}
|
|
} |