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