123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System;
- /// <summary>
- /// 掉落管理者
- /// </summary>
- public class NpcManager : MonoBehaviour
- {
- /// <summary>
- /// 单键
- /// </summary>
- private static NpcManager m_Instance;
- private int _mapId;
- private float _refreshItemTime = 1.0f;
- private float _nowRefreshTime = 0.0f;
- /// <summary>
- /// NPC列表
- /// </summary>
- private Dictionary<int, SceneEventNpcLogic> npcItems = new Dictionary<int, SceneEventNpcLogic>();
- public int MapId
- {
- get
- {
- return this._mapId;
- }
- set
- {
- this._mapId = value;
- }
- }
- /// <summary>
- /// 单键
- /// </summary>
- public static NpcManager Instance
- {
- get
- {
- if (m_Instance == null)
- {
- GameObject obj = new GameObject("NpcManager");
- DontDestroyOnLoad(obj);
- if (obj)
- {
- m_Instance = obj.AddComponent<NpcManager>();
- m_Instance.Init();
- }
- else
- {
- Debug.LogError("NpcManager 初始化失败!!!");
- }
- }
- return m_Instance;
- }
- }
- public void Update()
- {
- if (_nowRefreshTime < _refreshItemTime)
- {
- _nowRefreshTime += Time.deltaTime;
- if (_nowRefreshTime >= _refreshItemTime)
- {
- }
- }
- }
- public void RefreshTaskCardVo(TaskCardVo vo)
- {
- vo.curSteps.ForEach(stp =>
- {
- Enum_TaskCmdType eType = (Enum_TaskCmdType)stp.mo().cmd;
- if (stp.mo().cmd != (int)Enum_TaskCmdType.PlotOver)
- {
- return;
- }
- string[] paramList = stp.mo().paras.Split(',');
- int stepNpcID = int.Parse(paramList[0]);
- int stepStageID = int.Parse(paramList[1]);
- RefreshItem(stepNpcID);
- });
- }
- public void RefreshItem(int id)
- {
- _nowRefreshTime = 0;
- if (npcItems.ContainsKey(id))
- {
- npcItems[id].RefreshTaskSign();
- }
- else
- {
- LogHelper.LogError("查找NPC失败!" + id);
- }
- }
- /// <summary>
- /// 初始化
- /// </summary>
- public void Init()
- {
- npcItems.Clear();
- }
- public void AddNpcItem(SceneEventNpcLogic npc)
- {
- if (npcItems.ContainsKey(npc.info.npcId) == false)
- {
- npcItems.Add(npc.info.npcId, npc);
- }
- // 网格优化分配
- MyGridMap gridMap = GameObject.Find("GridMap").GetComponent<MyGridMap>();
- gridMap.AddOneObjToGrid(npc.gameObject);
- }
- /// <summary>
- /// 删除npc
- /// </summary>
- /// <param name="auto"></param>
- public void RemoveNpcItem(SceneEventNpcLogic npc)
- {
- Destroy(npc.gameObject);
- npcItems.Remove(npc.info.npcId);
- }
- public void RemoveNpcItem(int id)
- {
- Destroy(npcItems[id].gameObject);
- npcItems.Remove(id);
- }
- public Dictionary<int, SceneEventNpcLogic> GetAllNpc()
- {
- return npcItems;
- }
- }
|