Menu
CoddyTech

외부 파일

Coddy GDScript 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 65개 중 1번째.

실제 프로그램은 여러 파일로 나뉩니다. 각 .gd 파일은 스크립트이며, 한 스크립트가 다른 스크립트를 사용할 수 있습니다.

스크립트 맨 위에 class_name을 작성해 전역 이름을 지정하세요. 그러면 프로젝트의 다른 모든 스크립트에서 import 문 없이 해당 이름을 바로 사용할 수 있습니다:

# greeter.gd
class_name Greeter
extends RefCounted

static func greet(player_name: String) -> String:
	return "Hello, " + player_name + "!"

static func는 스크립트 이름을 통해 호출하는 함수를 만듭니다. Greeter.greet("Ada")처럼요. extends RefCounted는 노드가 아닌 스크립트를 위한 기본 클래스입니다. 다음 강의에서 이에 대해 설명합니다.

# main.gd
extends Node

func _ready():
	print(Greeter.greet("Ada")) # Hello, Ada!

프로그램은 여전히 main.gd의 _ready()에서 시작됩니다. 다른 파일들은 main.gd에서 사용하는 것들만 정의합니다.

Godot는 파일 이름을 snake_case로 지정하고 class_name은 PascalCase로 지정합니다. class_name Greeter는 greeter.gd에 있습니다. 파일당 클래스를 하나씩 유지하세요.

class_name이 없는 스크립트는 preload()를 사용해 경로로 불러올 수 있습니다:

const Helpers = preload("res://helpers.gd")

func _ready():
	print(Helpers.shout("hi")) # HI!
challenge icon

챌린지

쉬움

greeter.gd에 정적 함수 greet를 작성하세요. 이 함수는 플레이어 이름을 받아 Hello, NAME!을 반환합니다. 이름이 비어 있으면 Hello, friend!을 반환합니다.

제공된 코드는 이름이 몇 개 입력되는지 읽은 다음, 각 이름에 대해 Greeter.greet()를 출력합니다. 이름이 Ada와 빈 줄일 때 다음을 출력합니다:

Hello, Ada!
Hello, friend!

코드는 greeter.gd에 작성하세요. main.gd에는 제공된 입력/출력 코드가 있으며 수정할 수 없습니다.

직접 해보기

extends Node

func _ready():
	# 제공된 입출력 코드: 그대로 유지하세요
	var count := int(OS.read_string_from_stdin())
	for i in count:
		print(Greeter.greet(OS.read_string_from_stdin()))
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨

직접 연습해 보세요: 온라인 GDScript 컴파일러