Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
L
ldefense
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Packages
Packages
Container Registry
Analytics
CI / CD Analytics
Repository Analytics
Value Stream Analytics
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Gavin An
ldefense
Commits
371ec1d7
Commit
371ec1d7
authored
Jun 19, 2026
by
Gavin An
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
최대 시야로 바꾸었을 때 맵 스크롤 안되도록
parent
ad7d7f9a
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
12 additions
and
4 deletions
+12
-4
docs/agents_docs/todo.md
docs/agents_docs/todo.md
+2
-0
src/core/rts_camera.gd
src/core/rts_camera.gd
+7
-2
src/entities/units/base_unit.gd
src/entities/units/base_unit.gd
+1
-1
src/ui/hud.gd
src/ui/hud.gd
+1
-1
todo.md
todo.md
+1
-0
No files found.
docs/agents_docs/todo.md
View file @
371ec1d7
...
@@ -14,6 +14,8 @@
...
@@ -14,6 +14,8 @@
-
[
x
]
RTS 3D 탑다운 카메라 컨트롤러 구현 (
`src/core/rts_camera.gd`
)
-
[
x
]
RTS 3D 탑다운 카메라 컨트롤러 구현 (
`src/core/rts_camera.gd`
)
-
WASD 키보드 입력 및 화면 가장자리(Screen Edge) 마우스 스크롤 대응
-
WASD 키보드 입력 및 화면 가장자리(Screen Edge) 마우스 스크롤 대응
-
마우스 휠을 활용한 고도 기반 줌인/줌아웃 (피치 60도 고정각 보정)
-
마우스 휠을 활용한 고도 기반 줌인/줌아웃 (피치 60도 고정각 보정)
-
맵 크기에 딱 들어차 여백을 최소화하도록 최대 줌 아웃 한계(
`max_zoom`
)를 15.0으로 튜닝
-
줌 아웃을 최대로 당겼을 때(전체 맵이 화면에 다 보일 때) 카메라 이동을 불가능하게 막고, 초점(
`_target_focus`
)을 맵 중앙
`(0, 0)`
으로 부드럽게 정렬(lerp)시키는 기능 구현 완료
### [x] 2단계: 글로벌 게임 매니저와 스테이지 시스템
### [x] 2단계: 글로벌 게임 매니저와 스테이지 시스템
-
[
x
]
글로벌 게임 매니저 AutoLoad 싱글톤 (
`src/autoload/game_manager.gd`
) 구현
-
[
x
]
글로벌 게임 매니저 AutoLoad 싱글톤 (
`src/autoload/game_manager.gd`
) 구현
...
...
src/core/rts_camera.gd
View file @
371ec1d7
...
@@ -11,7 +11,7 @@ extends Camera3D
...
@@ -11,7 +11,7 @@ extends Camera3D
# 줌 범위 설정
# 줌 범위 설정
@
export
var
min_zoom
:
float
=
5.0
@
export
var
min_zoom
:
float
=
5.0
@
export
var
max_zoom
:
float
=
1
8
.0
@
export
var
max_zoom
:
float
=
1
5
.0
# 화면 가장자리 마우스 감지 여백 (픽셀 단위)
# 화면 가장자리 마우스 감지 여백 (픽셀 단위)
@
export
var
edge_margin
:
float
=
15.0
@
export
var
edge_margin
:
float
=
15.0
...
@@ -45,8 +45,13 @@ func _physics_process(delta: float) -> void:
...
@@ -45,8 +45,13 @@ func _physics_process(delta: float) -> void:
# 1. 입력 방향 계산
# 1. 입력 방향 계산
var
direction
:
Vector3
=
_get_input_direction
()
var
direction
:
Vector3
=
_get_input_direction
()
# 줌아웃이 최대치(max_zoom) 근처일 때는 카메라 이동을 차단하고 맵 중앙으로 초점을 부드럽게 복구
var
is_max_zoom
:
bool
=
_target_zoom
>=
(
max_zoom
-
0.1
)
# 2. 포커스 타겟 이동
# 2. 포커스 타겟 이동
if
direction
!=
Vector3
.
ZERO
:
if
is_max_zoom
:
_target_focus
=
_target_focus
.
lerp
(
Vector3
.
ZERO
,
delta
*
move_speed
*
0.2
)
elif
direction
!=
Vector3
.
ZERO
:
_target_focus
+=
direction
*
move_speed
*
delta
_target_focus
+=
direction
*
move_speed
*
delta
_target_focus
.
x
=
clampf
(
_target_focus
.
x
,
limit_min
.
x
,
limit_max
.
x
)
_target_focus
.
x
=
clampf
(
_target_focus
.
x
,
limit_min
.
x
,
limit_max
.
x
)
_target_focus
.
z
=
clampf
(
_target_focus
.
z
,
limit_min
.
y
,
limit_max
.
y
)
_target_focus
.
z
=
clampf
(
_target_focus
.
z
,
limit_min
.
y
,
limit_max
.
y
)
...
...
src/entities/units/base_unit.gd
View file @
371ec1d7
...
@@ -317,7 +317,7 @@ func _attach_weapon() -> void:
...
@@ -317,7 +317,7 @@ func _attach_weapon() -> void:
# 검의 로컬 스케일, 회전 및 오프셋 보정 (손안에 쏙 들어가도록)
# 검의 로컬 스케일, 회전 및 오프셋 보정 (손안에 쏙 들어가도록)
# FBX 원본 메쉬 크기(AABB 약 0.008)가 매우 작으므로 150배 확대하여 캐릭터 스펙에 맞춤
# FBX 원본 메쉬 크기(AABB 약 0.008)가 매우 작으므로 150배 확대하여 캐릭터 스펙에 맞춤
weapon_inst
.
scale
=
Vector3
(
1.0
,
1.0
,
1.0
)
# 1
50
배 확대 보정
weapon_inst
.
scale
=
Vector3
(
1.0
,
1.0
,
1.0
)
# 1배 확대 보정
weapon_inst
.
rotation_degrees
=
Vector3
(
90.0
,
0.0
,
90.0
)
# 검날 방향 보정
weapon_inst
.
rotation_degrees
=
Vector3
(
90.0
,
0.0
,
90.0
)
# 검날 방향 보정
weapon_inst
.
position
=
Vector3
(
0.0
,
0.0
,
0.0
)
weapon_inst
.
position
=
Vector3
(
0.0
,
0.0
,
0.0
)
...
...
src/ui/hud.gd
View file @
371ec1d7
...
@@ -47,7 +47,7 @@ func _initialize_unit_templates() -> void:
...
@@ -47,7 +47,7 @@ func _initialize_unit_templates() -> void:
striker
.
unit_name
=
"Striker"
striker
.
unit_name
=
"Striker"
striker
.
damage
=
12.0
striker
.
damage
=
12.0
striker
.
cooldown
=
0.5
striker
.
cooldown
=
0.5
striker
.
move_speed
=
6
.0
striker
.
move_speed
=
10
.0
striker
.
attack_range
=
1.5
striker
.
attack_range
=
1.5
striker
.
is_ranged
=
false
striker
.
is_ranged
=
false
striker
.
unit_color
=
Color
(
0.12
,
0.45
,
0.85
,
1.0
)
# 청색
striker
.
unit_color
=
Color
(
0.12
,
0.45
,
0.85
,
1.0
)
# 청색
...
...
todo.md
View file @
371ec1d7
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
-
WASD / 방향키를 통한 화면 이동
-
WASD / 방향키를 통한 화면 이동
-
마우스 휠을 통한 줌인/줌아웃
-
마우스 휠을 통한 줌인/줌아웃
-
화면 가장자리에 마우스 위치 시 카메라 스크롤 (선택 사항)
-
화면 가장자리에 마우스 위치 시 카메라 스크롤 (선택 사항)
-
최대 줌 아웃 시 화면을 맵에 가득 채우고(max_zoom = 15.0) 카메라 이동 차단 및 중앙 초점 정렬 연동
## [x] 2단계: 글로벌 게임 매니저와 스테이지 시스템
## [x] 2단계: 글로벌 게임 매니저와 스테이지 시스템
-
[
x
]
글로벌 게임 매니저 싱글톤 (
`src/autoload/game_manager.gd`
) 구현
-
[
x
]
글로벌 게임 매니저 싱글톤 (
`src/autoload/game_manager.gd`
) 구현
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment