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 { } } } }