void Update() { //조작키(Control)가 블록 되어있으면 동작 안함 if (controllable == false) { return; } //인벤토리 키 입력 확인 if (CheckInventoryKeyInput()) { inventoryActive = !inventoryActive; ui.Control_Inventory(inventoryActive); } if (!inventoryActive) { //스킬 키를 눌렀는지 확인 skillIndex = CheckSkillKeyInput(); //딜레이 상태가 아니라면 if (!isDelay) { //이동키를 눌렀는지 확인 if (CheckMoveKeyInput()) { SetSpriteDirection(); //바라볼 방향 결정 playerMove.Move(moveDirection); //플레이어 이동 playerAttack.StopAttack(); //공격 취소 //이동키 입력에 의한 플레이어 애니메이션 적용 playerAnimation.TurnPlayer(spriteDirection); playerAnimation.StopAttack(); if (moveDirection == Vector2.zero) { playerAnimation.StopWalking(); } else { playerAnimation.StartWalking(); } //이동 중 사용 가능한 스킬을 사용했을 경우 if (skillIndex >= 0) { if (playerSkill.GetSkill(skillIndex).usableOnMove) { playerSkill.UseSkill(skillIndex, spriteDirection); } } } //이동키를 누르지 않은 경우 else { //대기 애니메이션 적용 playerAnimation.StopWalking(); firstDirection = Vector2.zero; //공격키를 눌렀는지 확인 if (CheckAttackKeyInput()) { playerAttack.Attack(); } else { playerAttack.StopAttack(); } //스킬 사용 if (skillIndex >= 0) { playerSkill.UseSkill(skillIndex, spriteDirection); } } } //딜레이 상태인 경우 else { playerAttack.StopAttack(); playerAnimation.StopAttack(); playerAnimation.StopWalking(); if (skillIndex >= 0 && playerSkill.GetSkill(skillIndex).delayCancelable) { playerSkill.CancelSpell(); playerSkill.UseSkill(skillIndex, spriteDirection); } } } //피격 시 무적 상태인 경우 if (!isAttackable) { gracePeriodTimer -= Time.deltaTime; //지속시간이 지나면 해제 if (gracePeriodTimer <= 0) { isAttackable = true; } } }