Ejemplo n.º 1
0
    public void Init()
    {
        if (!info)
        {
            return;
        }

        Data      = new TalkerData();
        Data.info = Info;
        if (Info.IsQuestGiver)
        {
            Data.InitQuest(info.QuestsStored);
            Debug.Log("任务-" + TalkerName + "---" + Data.questInstances.Count);
        }
    }
Ejemplo n.º 2
0
 public void Init()
 {
     if (!GameManager.Talkers.ContainsKey(TalkerID))
     {
         GameManager.Talkers.Add(TalkerID, this);
     }
     else if (!GameManager.Talkers[TalkerID] || !GameManager.Talkers[TalkerID].gameObject)
     {
         GameManager.Talkers.Remove(TalkerID);
         GameManager.Talkers.Add(TalkerID, this);
     }
     else
     {
         Destroy(gameObject);
     }
     GameManager.TalkerDatas.TryGetValue(TalkerID, out TalkerData dataFound);
     if (!dataFound)
     {
         Data = new TalkerData();
         if (Info.IsVendor)
         {
             Data.shop = Instantiate(Info.Shop);
             Data.shop.Init();
         }
         else if (Info.IsWarehouseAgent)
         {
             Data.warehouse = new Warehouse(Info.Warehouse.size.Max);
         }
         Data.info = Info;
         Data.InitQuest(Info.QuestsStored);
         GameManager.TalkerDatas.Add(TalkerID, Data);
     }
     else
     {
         Data = dataFound;
     }
     Data.currentScene    = UnityEngine.SceneManagement.SceneManager.GetActiveScene().name;
     Data.currentPosition = transform.position;
     if (Info.IsVendor && !ShopManager.Vendors.Contains(Data))
     {
         ShopManager.Vendors.Add(Data);
     }
     flagAgent = ObjectPool.Get(QuestManager.Instance.QuestFlagsPrefab.gameObject, UIManager.Instance.QuestFlagParent).GetComponent <QuestFlag>();
     flagAgent.Init(this);
 }