get_string_async 함수 설명
get_string_async
함수는 사용자에게 문자열을 입력받기 위한 창을 열고 메시지를 표시합니다. 이 함수는 비동기적으로 작동하므로, 사용자가 입력을 기다리는 동안에도 다른 이벤트가 정상적으로 실행됩니다. 사용자가 문자열을 입력하고 "Okay" 버튼을 누르면 비동기 대화 이벤트가 발생하며, 이 이벤트 동안 async_load
변수에 DS 맵이 저장됩니다. 이 맵은 다음 세 가지 키를 포함합니다:
키 | 설명 |
---|---|
id | 함수 호출 시 반환된 값 |
status | "Okay" 버튼이 눌렸을 경우 true, 메시지가 취소된 경우 false |
result | 사용자 입력 문자열 (입력이 없으면 빈 문자열 "") |
문법
get_string_async(string, default);
매개변수 설명
매개변수 | 타입 | 설명 |
---|---|---|
string | String | 대화 상자에 표시할 메시지 |
default | String | 기본 문자열 |
반환값
- 비동기 요청 ID
예제
아래는 사용자가 문자열을 입력하도록 요청하는 코드 예제입니다. 이 코드는 객체의 "Mouse Left Pressed" 이벤트에서 사용됩니다.
// Mouse Left Pressed Event
msg = get_string_async("What's your name?", "Anon");
위 코드는 사용자에게 문자열 입력을 요청하고 "Okay" 버튼을 누르도록 합니다. 비동기 ID는 msg
변수에 저장됩니다. 이후 비동기 대화 이벤트에서 다음과 같이 사용할 수 있습니다:
// Async Dialog Event
var _id = ds_map_find_value(async_load, "id");
if (_id == msg) {
if (ds_map_find_value(async_load, "status")) {
if (ds_map_find_value(async_load, "result") != "") {
global.name = ds_map_find_value(async_load, "result");
}
}
}
위 코드는 반환된 DS 맵의 "id" 키를 msg
변수에 저장된 값과 비교합니다. 두 값이 같으면 "Okay" 버튼이 눌렸는지 확인하고, 입력된 문자열이 빈 문자열이 아닌 경우에만 전역 변수를 설정합니다.
활용 예제
- 사용자 이름 입력 받기
gml msg = get_string_async("이름을 입력하세요:", "이름");
- 사용자 이메일 입력 받기
gml msg = get_string_async("이메일을 입력하세요:", "example@example.com");
- 비밀번호 입력 받기 (비밀번호 숨기기)
gml msg = get_string_async("비밀번호를 입력하세요:", "");
- 설정 변경을 위한 사용자 입력 받기
gml msg = get_string_async("설정 값을 입력하세요:", "기본값");
- 피드백 요청
gml msg = get_string_async("피드백을 입력하세요:", "좋아요!");
이와 같이 get_string_async
함수를 활용하여 다양한 사용자 입력을 받을 수 있습니다.