示例#1
0
    /// <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;
    }
示例#2
0
    // 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;
            }
        }
    }