/// <summary> /// 플레이어 에니메이션 체인지. /// </summary> /// <param name="state"></param> public void ChangedAction(ePlayerActState state) { switch (state) { case ePlayerActState.RUN: _naviAgent.enabled = true; _naviAgent.speed = 3.5f; _naviAgent.stoppingDistance = 0; break; case ePlayerActState.IDLE: _naviAgent.enabled = false; break; case ePlayerActState.WALK: _naviAgent.enabled = true; _naviAgent.speed = 1.0f; _naviAgent.stoppingDistance = 0; break; default: break; } aniCtrl.SetInteger("AniState", (int)state); _curPlyState = state; }
// Update is called once per frame void Update() { //Debug.Log(_curPlyState); //if (!SpawnControl._uniqueInstance.SPAWNCHECK) //if(LobbyManager.INSTANCE.NOWGAMESTATE == LobbyManager.eGameState.PLYRUNNING) { switch (_curPlyState) { case ePlayerActState.RUN: if (LobbyManager._uniqueInstance.NOWGAMESTATE == LobbyManager.eGameState.STARTFIND) { _timeCheck += Time.deltaTime; if (_timeCheck > 2.7f) { // 숨소리 효과음. SoundManager._uniqueinstance.PlayEffSound(SoundManager.eEffType.RUNNING_BREATH); _timeCheck = 0; if (_crash) { _crash = false; UIFader._uniqueInstance.UIELEMENT.GetComponent <Image>().color = Color.yellow; UIFader._uniqueInstance.FadeIn(LobbyManager._uniqueInstance.FADENUM); } } if (FixedTouchField._uniqueInstance.PRESSED) { // 화면이 터치될 시 캐릭터 움직임.. // 시간차에 따른 캐릭터 달리기 속도 저하.. if (LobbyManager._uniqueInstance.PLAYCOUNT > 40) { transform.Translate(new Vector3(Camera.main.transform.forward.x, 0, Camera.main.transform.forward.z) * 8.5f * Time.deltaTime); } else if (LobbyManager._uniqueInstance.PLAYCOUNT <= 40 && LobbyManager._uniqueInstance.PLAYCOUNT > 10) { transform.Translate(new Vector3(Camera.main.transform.forward.x, 0, Camera.main.transform.forward.z) * 6.0f * Time.deltaTime); } else { transform.Translate(new Vector3(Camera.main.transform.forward.x, 0, Camera.main.transform.forward.z) * 5.0f * Time.deltaTime); } } else { // 화면 터치가 안됬을 시 캐릭터 IDLE.. ChangedAction(ePlayerActState.IDLE); } } if (Vector3.Distance(transform.position, _unrinal[_rndNumber].transform.position) <= 1.5f) { // 내 캐릭터와 소변기 거리가 1.5 이하이면 => 스타트버튼 클릭 후 게임 시작.. LobbyManager._uniqueInstance.StartBtn(); _curPlyState = ePlayerActState.WALK; _arrow.SetActive(false); } break; case ePlayerActState.IDLE: _isActing = true; if (LobbyManager._uniqueInstance.NOWGAMESTATE == LobbyManager.eGameState.STARTFIND) { if (FixedTouchField._uniqueInstance.PRESSED) { aniCtrl.enabled = true; ChangedAction(ePlayerActState.RUN); } else { ChangedAction(ePlayerActState.IDLE); } } else if (LobbyManager._uniqueInstance.NOWGAMESTATE == LobbyManager.eGameState.PLAY) { aniCtrl.enabled = false; } break; case ePlayerActState.WALK: if (Vector3.Distance(transform.position, _walkPoints[_rndNumber]) < 0.15f) { _shootPos.SetActive(true); LobbyManager._uniqueInstance.NOWGAMESTATE = LobbyManager.eGameState.START; // 게임 시작 ChangedAction(ePlayerActState.IDLE); SoundManager._uniqueinstance.PlayEffSound(SoundManager.eEffType.ZIPPERDOWN); LobbyManager._uniqueInstance.PLAYCOUNT = 50.0f; _isActing = true; } break; } } }