示例#1
0
    public void Play(EMissionKey missionKey, int mapIndex, Action callback)
    {
        UnitsDialogScene missionScene = GetScene(missionKey, mapIndex);

        if (missionScene == null)
        {
            if (callback != null)
            {
                callback();
            }
            return;
        }

        PlayInternal(missionScene, callback);
    }
示例#2
0
    private void PlayInternal(UnitsDialogScene missionScene, Action callback)
    {
        _missionScene     = missionScene;
        _callback         = callback;
        _sceneActionIndex = -1;

        _monologInstances = new Dictionary <string, UnitMonolog>();
        for (int i = 0; i < _missionScene.DialogData.Length; i++)
        {
            if (!_monologInstances.ContainsKey(_missionScene.DialogData[i].PrefabPath))
            {
                _monologInstances.Add(_missionScene.DialogData[i].PrefabPath, (GameObject.Instantiate(Resources.Load(_missionScene.DialogData[i].PrefabPath)) as GameObject).GetComponent <UnitMonolog>());
            }
        }

        PlayNext();
    }
示例#3
0
    private void End()
    {
        Action callback = _callback;

        _missionScene     = null;
        _callback         = null;
        _sceneActionIndex = -1;

        _activeMonologInstance = null;
        foreach (KeyValuePair <string, UnitMonolog> kvp in _monologInstances)
        {
            if (kvp.Value != null)
            {
                GameObject.Destroy(kvp.Value.gameObject);
            }
        }
        _monologInstances.Clear();
        _monologInstances = null;

        callback();
    }