/// <summary> /// 소울 메모리 데이터를 읽습니다. /// </summary> /// <param name="TALK_CODE"></param> /// <param name="_soulMemory"></param> /// <returns></returns> IEnumerator ProcessSoulMemory(int TALK_CODE, SoulMemory _soulMemory) { talkUI.SetActive(true); //isTalkStart = true; //isTalkEnd = false; currentSoulMemory = _soulMemory; PlayerController.Instance.isInteractingSoulMemory = true; isNextPressed = false; currentTalkCode = (int)soulMemoryData[TALK_CODE][_TALK_CODE]; currentCharCode = (int)soulMemoryData[TALK_CODE][_TALK_CHAR_NAME]; currentTalkMove = (int)soulMemoryData[TALK_CODE][_TALK_MOVE]; currentCharName = charDict[currentCharCode]; currentTalkText = soulMemoryData[TALK_CODE][_TALK_NAEYONG] as string; //talkWindow.SetActive(true); nameText.text = currentCharName; // bool isSkip = false; for (int s = 0; s < currentTalkText.Length + 1; s++) { talkText.text = currentTalkText.Substring(0, s); if (isNextPressed) //아직 텍스트가 다 나오지도 않았는데 다음 버튼이 눌렸다면 { isNextPressed = false; // 일단 펄스로 바고 talkText.text = currentTalkText; // isSkip = true;//스킵을 했다고 처리한다. break; //for 벗어나기 } yield return(new WaitForSecondsRealtime(talkSpeed)); } yield return(new WaitUntil(() => isNextPressed)); //TRUE일때까지 대기 isNextPressed = false; //지나갔으면 분명 true인 상태일테니까, false로 변경 switch (currentTalkMove) { case -1: //다음으로 이동 ProcessGoSoulMemory(TALK_CODE + 1, currentSoulMemory); break; case -25: // 종료 SetSoulMemoryClose(); break; } }
/// <summary> /// 내부에서 사용하는 소울메모리 읽기 시작 함수입니다. /// </summary> /// <param name="TALK_CODE"></param> /// <param name="_npc"></param> private void ProcessGoSoulMemory(int TALK_CODE, SoulMemory _soulMemory) { //PlayerController.Instance.isTalking = true; if (ReadSoulMemoryCoroutine != null) { StopCoroutine(ReadSoulMemoryCoroutine); ReadSoulMemoryCoroutine = null; } ReadSoulMemoryCoroutine = ProcessSoulMemory(TALK_CODE, _soulMemory); StartCoroutine(ReadSoulMemoryCoroutine); }
/// <summary> /// 외부에서 호출하는 사념 읽기 시작 함수입니다. /// </summary> /// <param name="TALK_CODE"></param> /// <param name="_npc"></param> public void StartReadSoulMemory(int TALK_CODE, SoulMemory _soulMemory) { if (ReadSoulMemoryCoroutine != null) { Debug.Log("이상함"); StopCoroutine(ReadSoulMemoryCoroutine); ReadSoulMemoryCoroutine = null; } ReadSoulMemoryCoroutine = ProcessSoulMemory(TALK_CODE, _soulMemory); StartCoroutine(ReadSoulMemoryCoroutine); }
public void Init() { if (talkText == null) { Debug.Log("토크텍스트가 널"); } //currentTalkStarter = null; currentTalkNPC = null; currentSoulMemory = null; isTalkEnd = false; isTalkStart = false; talkData = new List <Dictionary <string, object> >(); charData = new List <Dictionary <string, object> >(); soulMemoryData = new List <Dictionary <string, object> >(); }
public void SetSoulMemoryClose() { talkUI.SetActive(false); if (ReadSoulMemoryCoroutine != null) { StopCoroutine(ReadSoulMemoryCoroutine); ReadSoulMemoryCoroutine = null; } if (currentSoulMemory != null) { currentSoulMemory.DisappearSoulMemory(); currentSoulMemory = null; ////UI에 추가하는건 사념이 알아서 하기로 함 //currentSoulMemory.isEnd = true; } }
public void Init() { playerStateMachine = new PlayerStateMachine(this); if (playerSkillManager == null) { playerSkillManager = GetComponent <PlayerSkillManager>(); } playerRigidbody = GetComponent <Rigidbody2D>(); playerCollider = GetComponent <BoxCollider2D>(); playerCapsuleCollider = GetComponent <CapsuleCollider2D>(); animator = GetComponent <Animator>(); puppet = gameObject.transform; Init_LayerMask(); Init_AnimatorParameter(); isRight = true; isWater = false; isInputCatchKey = false; isTalkReady = false; isGliding = false; existInteractObject = false; isInteractingSoulMemory = false; currentNPC = null; catchedObject = null; //pushedObject = null; touchedObject = null; currentSoulMemory = null; originalMoveSpeed = movementSpeed; //animator.SetFloat("WindBlend", 0); currentGlideAngle = glideAngle + 90f; footPosition = lightningPosition; myRigidbody = playerRigidbody; Init_ContactFilter(); }
public Quest_CheckTheSoulMemory(SquirrelDoritos _doritos, SoulMemory _soulMemory) { doritos = _doritos; soulMemory = _soulMemory; }
/// <summary> /// 소울메모리 리스트에 추가합니다. 그리고, 상태를 체크합니다. /// </summary> public void AddSoulMemory(SoulMemory _soulMemory) { soulMemoryList.Add(_soulMemory); CheckClearCondition_SoulMemory(); }