참고자료
- 미동작: 리사이즈 시그널 받아오기: https://sites.google.com/site/dsgodot/code-snippets/viewport-size
- 동작 (미확인): 반응형으로 화면 채우기: https://godotengine.org/qa/9947/responsive-to-fit-multiple-resolutions
여러 방법이 있겠는데 저는 keep-width와 keep-height를 거꾸로 적용하는 방법으로 갔습니다.
저는 아래 코드를 자동로드(autoload / 싱글톤)에 넣고 구동했습니다. OS.get_window_size()가 모바일에서도 동작하는지는 아직 확인하지 않았습니다.
# https://godotengine.org/qa/9947/responsive-to-fit-multiple-resolutions
# https://sites.google.com/site/dsgodot/code-snippets/viewport-size
extends Node
var min_screen = Vector2(Globals.get("display/width"), Globals.get("display/height"))
func _ready():
get_tree().connect("screen_resized", self, "_screen_resized");
_screen_resized()
func _screen_resized():
var scene_rect = OS.get_window_size()
# print("DEBUG","Scene resized : " + str(scene_rect) )
if scene_rect.width > scene_rect.height:
get_tree().set_screen_stretch( SceneTree.STRETCH_MODE_VIEWPORT, SceneTree.STRETCH_ASPECT_KEEP_HEIGHT, min_screen )
else:
get_tree().set_screen_stretch( SceneTree.STRETCH_MODE_VIEWPORT, SceneTree.STRETCH_ASPECT_KEEP_WIDTH, min_screen )
# print("DEBUG","Scene resized : " + str( get_tree().get_root().get_node("level_player/pause_ui").get_size() ) )
프로젝트 설정은 이렇습니다.
- width, height 지정
- stretch_mode - viewport
- stretch_aspect - keep
- 씬의 루트 노드는 풀스크린 앵커링된 컨트롤
이제 카메라 세팅하는 법 알아보러 가야...
'학습 > Godot 엔진' 카테고리의 다른 글
[Godot] 루프에서 wait 함수 사용하기 (0) | 2017.08.21 |
---|---|
[Godot] GUI를 카메라에 영향받지 않도록 하기 (0) | 2017.03.11 |
[Godot] Patch9Frame (0) | 2017.03.10 |