본문 바로가기

게임/Godot 엔진

Godot 스크립트

GDScript 작성 팁 및 서비스 관리 등에 다룬다. 3.5 버전 기준으로 작성된 점을 유의 하길 바랍니다.

 

Godot Singleton Service 만들기 

전역에서 무언가 관리하는 무언가를 만들 수 있는 방법을 소개한다. 그게 노드일 수도 있고, 서비스일 수도 있겠지만 노드라는 가정하에 설명하겠다.

 

1. 일단 빈 Node 를 만든다. (노드가 필요 없다면 그냥 Script 만 만들어도 된다.)

2. Script 를 추가한다. 예제에서는 GlobalService 라는 이름으로 만들었다.

3. 프로젝트 -> 프로젝트 설정 -> 오토로드 탭에 진입한다.

경로쪽에 있는 폴더 아이콘을 눌러서 지정할 서비스 스크립트를 선택한 후, 오른쪽에 있는 추가 버튼을 눌러준다.

4. 그럼 아래와 같이 자동으로 활성화가 체크되어져 있다. 이제 프로젝트를 실행할 때, 자동으로 해당 서비스가 전역으로 하나 생성되어 있다.

 

특정 노드에 지정할 커스텀 속성 만들기

Gdscript 에서 export 속성으로 노드에서 지정할 수 있는 커스텀 속성을 만들 수 있다.

4.0 부터는 enum 에 string 속성도 추가할 수 있는 것 같다.

enum Direction {
 LETT,
 RIGHT
}

export(String) var str = ""
export(Direction) var direction = LETT

 

 

+ Godot 4.0 tip

class instacne 생성 예시
func _makeState(stateData):
 
   var state = State.new();
   state.id = stateData.id;
   state.value = stateData.value;
   state.stateType = stateData.stateType;
 
    return state;
 
class 예시
class_name State
 
const _statusMax = 100;
var id:int = 0;
var value: int = 0;
var stateType: int = 0;
 
func increaseValue(value:int) -> void:
    self.value += value;
    if self.value > _statusMax:
         self.value = _statusMax;
 

'게임 > Godot 엔진' 카테고리의 다른 글

Godot - UI  (0) 2023.03.26
Godot - Animation  (0) 2023.01.08
Godot 노드들  (0) 2021.11.07
Godot 편집기 Tip  (0) 2021.11.07
Gotdot - Tutorial 게임 만들기 (1)  (0) 2021.03.03