Example #1
0
 /// <summary>
 /// 重置
 /// </summary>
 /// <param name="dataid"></param>
 public void ResetFunctionData(int dataid, Action <ChapterFunctionTextDefine> endAction)
 {
     _dialogueData = new SingleDialogueData(dataid, true);
     _boxBgRect.gameObject.SetActive(true);
     _roleSpeakRearTwoAction = endAction;
     Show(_dialogueData._FunctionData);
 }
Example #2
0
 /// <summary>
 /// 设置初始id 和主角id,聊天对象id
 /// </summary>
 /// <param name="starId">初始对话id</param>
 /// <param name="protagonistID">主角id</param>
 /// <param name="anotherId">聊天对象id</param>
 public void SetInitialData(int starId, int protagonistID, int anotherId)
 {
     _startDialogueId = starId;
     _protagonistID   = protagonistID;
     _anotherId       = anotherId;
     SetProtagonistName();
     _dialogueData      = new SingleDialogueData(_startDialogueId);
     _multiDialogueData = new MultiDialogueData(_startDialogueId);
     Show();
 }
Example #3
0
 /// <summary>
 /// 初始化组件
 /// </summary>
 public virtual void Initial(Action endAction, Action<ChapterDialogueTextDefine> roleSpeakAeforeAction = null, Action<ChapterDialogueTextDefine> roleSpeakRearAction = null, Action<ChapterDialogueTextDefine> roleDialogueBoxCloseAction = null, Action<ChapterDialogueTextDefine> roleBoxCloseAeforeAction = null)
 {
     _endAction = endAction;
     _roleSpeakAeforeAction = roleSpeakAeforeAction;
     _roleSpeakRearAction = roleSpeakRearAction;
     _roleDialogueBoxCloseAction = roleDialogueBoxCloseAction;
     _roleBoxCloseAeforeAction = roleBoxCloseAeforeAction;
     _dialogueData = new SingleDialogueData(_startDialogueId, _isFunction);
     _isInitial = true;
 }
Example #4
0
 /// <summary>
 /// 打印机完毕
 /// </summary>
 public void ShowEnd()
 {
     _roleSpeakRearAction?.Invoke(_dialogueData._Data);
     if (_dialogueData._IsEnd)
     {
         _isEnd = true;
     }
     else
     {
         _dialogueData = new SingleDialogueData(_dialogueData._Data.NextDialogId);
     }
     _isPrinTing = false;
 }
Example #5
0
    /// <summary>
    /// 展示对话
    /// </summary>
    /// <param name="data"></param>
    public override async UniTask Show(ChapterDialogueTextDefine data)
    {
        await base.Show(data);

        if (_roleDic.ContainsKey(data.NameID))
        {
            _roleBoxCloseAeforeAction?.Invoke(_dialogueData._Data);

            if (_previousRole != null)
            {
                Debug.Log("关闭旧对话框:" + _previousRole.ID);
                await CloseShowText(_previousRole.NameID);
            }
            //if (_previousRole != null)
            //{
            //    Debug.Log("关闭旧对话框完毕:" + _previousRole.ID);
            //}

            await CloseAllShowText(data.NameID);

            //Debug.Log("关闭旧对话");
            await UniTask.WaitUntil(() => IsAllClose(data.NameID));

            //Debug.Log("关闭旧对话完毕");
            _roleSpeakAeforeAction?.Invoke(data);
            await UniTask.WaitUntil(() => !_roleSpeakAeforeAwait);

            await _roleDic[data.NameID].Show(data.ID);
            _roleSpeakRearAction?.Invoke(_dialogueData._Data);
            //await UniTask.Delay(TimeSpan.FromMilliseconds(800)); //取消说话间隔

            if (_dialogueData._Data.NextDialogId == 0)
            {
                _isEnd = true;
            }
            else
            {
                _previousRole = _dialogueData._Data;
                _dialogueData = new SingleDialogueData(_dialogueData._Data.NextDialogId);
            }
            if (_isMomentCloseOrOpen)
            {
                return;
            }
            OpenClickBtn(true);
        }
    }
Example #6
0
 /// <summary>
 /// 重置
 /// </summary>
 /// <param name="dataid"></param>
 public void ResetData(int dataid)
 {
     _dialogueData = new SingleDialogueData(dataid);
     _boxBgRect.gameObject.SetActive(true);
     Show(_dialogueData._Data);
 }