Ejemplo n.º 1
0
    private void Update()
    {
        if (!_isdead)     // dead가 true이면 플레이어가 죽었다는 의미.
        {
            if (!_isRope) // 로프를 타고 있을때는 키를 눌러도 이동하지 않음.
            {
                if (_movePos.x != 0)
                {
                    _ray2d = Physics2D.Raycast(transform.position + (Vector3)_groundCollider.offset, _movePos, _groundCollider.size.x / 2.0f + 0.07f,
                                               1 << LayerMask.NameToLayer("Ground") | 1 << LayerMask.NameToLayer("Wall"));
                }
                if (_ray2d.collider == null)
                {
                    transform.Translate(_movePos.normalized * Time.deltaTime * _speed);
                }
            }
            if (_isshield) // 실드 키를 누르고 있을 때.
            {
                GaugeManager.instance.SetShieldGauge(_shield -= 0.16f);
                if (_shield <= 0)
                {
                    UnShield();
                }
            }
            else // 실드 키를 안 누르고 있을 때.
            {
                if (_shield < 100.0f)
                {
                    GaugeManager.instance.SetShieldGauge(_shield = Mathf.Clamp(_shield + 0.02f, 0, 100.0f));
                }
            }

            if (_isLookup)
            {
                _lookupTime = Mathf.Clamp(_lookupTime + 0.33333333f, 0, 1f);
            }
            else
            {
                _lookupTime = Mathf.Clamp(_lookupTime - 0.33333333f, 0, 1f);
            }

            if (_isRopeDown)
            {
                SoundManager.instance.PlaySFX("getladder", false);
                transform.Translate(Vector3.down * 2.0f * Time.deltaTime);
                if (_rope.CarculateDownPos(transform))
                {
                    EscapeRope();
                    SoundManager.instance.StopSFX("getladder");
                    _isRopeDown = false;
                }
            }
            if (_isRopeUp)
            {
                SoundManager.instance.PlaySFX("getladder", false);
                transform.Translate(Vector3.up * 2.0f * Time.deltaTime);
                if (_rope.CarculateUpPos(transform))
                {
                    EscapeRope();
                    SoundManager.instance.StopSFX("getladder");
                    _isRopeUp = false;
                }
            }
            if (Application.platform == RuntimePlatform.WindowsEditor)
            {
                if (Input.GetKeyDown(KeyCode.LeftArrow))
                {
                    Move(-1);
                }
                else if (Input.GetKeyDown(KeyCode.RightArrow))
                {
                    Move(1);
                }
                else if (Input.GetKeyDown(KeyCode.UpArrow))
                {
                    LookUp(true);
                }
                else if (Input.GetKeyDown(KeyCode.DownArrow))
                {
                    Shield();
                }
                else if (Input.GetKeyDown(KeyCode.Z)) // Shoot
                {
                    Shoot();
                }
                else if (Input.GetKeyDown(KeyCode.Space))
                {
                    Jump();
                }
                else
                {
                }

                if (Input.GetKeyUp(KeyCode.LeftArrow) || Input.GetKeyUp(KeyCode.RightArrow))
                {
                    Idle();
                }
                else if (Input.GetKeyUp(KeyCode.UpArrow))
                {
                    LookUp(false);
                }
                else if (Input.GetKeyUp(KeyCode.DownArrow))
                {
                    UnShield();
                }
                else
                {
                }
            }
        }
    }