Commit c675f866 authored by Gavin An's avatar Gavin An

유닛의 배치 방법 변경 전

parent ae4c3827
......@@ -90,7 +90,7 @@ func _physics_process(delta: float) -> void:
if dist > chase_threshold:
_target_monster = null
if _is_moving and _nav_agent.target_position:
if _is_moving and _has_reached_manual_move_target():
_is_moving = false
# 2. 적 자동 탐색 (타겟이 없고 수동 강제 이동 방지 쿨다운이 완료, 공격 쿨다운이 끝난 경우)
......@@ -192,6 +192,17 @@ func _navigate_to_target(_delta: float) -> void:
if current_pos.distance_to(next_path_pos) > 0.2:
_look_at_target(next_path_pos)
## 수동으로 찍은 이동 지점에 도착했는지 확인합니다.
## - 이동 중에는 자동 타겟 탐색을 막고, 목적지에 충분히 가까워졌을 때만 다시 탐색을 허용합니다.
func _has_reached_manual_move_target() -> bool:
if _nav_agent.is_navigation_finished():
return true
var target_pos: Vector3 = _nav_agent.target_position
var current_xz: Vector2 = Vector2(global_position.x, global_position.z)
var target_xz: Vector2 = Vector2(target_pos.x, target_pos.z)
return current_xz.distance_to(target_xz) <= _nav_agent.target_desired_distance
## 타겟을 부드럽게(또는 수평 기준) 바라보게 회전
func _look_at_target(target_pos: Vector3) -> void:
var look_target: Vector3 = Vector3(target_pos.x, global_position.y, target_pos.z)
......@@ -356,6 +367,7 @@ func _set_melee_move_lock_until_hit(damage_delay: float) -> void:
## 외부에서 호출하는 특정 몬스터 강제 공격 지정
func attack_target(monster: Node3D) -> void:
_is_holding = false # 강제 공격 시 홀드 해제
_is_moving = false
_has_queued_move_after_attack = false
if is_instance_valid(monster) and not monster.get("is_dead"):
_target_monster = monster
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment