script_execute 함수 설명 및 활용 예제
함수 설명
script_execute 함수는 주어진 인수와 함께 스크립트 함수 또는 메서드를 호출합니다. 이 함수는 호출하는 인스턴스나 구조체의 컨텍스트에서 전달된 스크립트 함수 또는 메서드를 호출합니다. 바인딩된 컨텍스트에서 메서드를 호출하려면 method_call을 사용해야 합니다. 이 함수는 호출 인수를 개별 매개변수로 받습니다. 인수를 배열로 전달하려면 script_execute_ext를 사용합니다.
문법
script_execute(scr, arg0, arg1, arg2, ...);
매개변수 설명
| 매개변수 | 유형 | 설명 |
|---|---|---|
| scr | Script Function 또는 Method 또는 Script Asset | 호출하고자 하는 함수/스크립트 또는 메서드입니다. (스크립트 함수와 메서드의 차이 참조) |
| arg0, arg1, arg2, ... | Any | 함수/스크립트에 전달하고자 하는 다양한 인수입니다. |
반환값
- Any (호출된 스크립트/함수의 반환 값에 따라 달라집니다)
활용 예제
예제 1: 기본 사용
script_execute(choose(move_up, move_down, move_left, move_right), irandom(5));
위 코드는 script_execute를 호출하여 네 개의 사용자 정의 함수 중 하나(이 경우 이동 관련)를 선택하고, 첫 번째 인수로 랜덤 정수를 전달합니다.
예제 2: 생성자 함수 호출
function StructA() constructor {
a = 1;
b = 2;
c = "Hello";
}
function StructB() constructor {
d = 3;
e = 4;
f = "!";
}
the_struct = {};
with(the_struct) {
script_execute(StructA);
script_execute(StructB);
}
show_debug_message($"{instanceof(the_struct)} -> {the_struct}");
위 코드는 script_execute를 사용하여 생성자 함수를 호출하는 방법을 보여줍니다. 먼저 두 개의 생성자 함수가 정의됩니다. 그런 다음 빈 구조체가 생성되어 변수 the_struct에 저장됩니다. with 문을 사용하여 the_struct의 범위로 변경한 후, script_execute가 두 번 호출됩니다: 한 번은 StructA와 함께, 또 한 번은 StructB와 함께. 두 번의 script_execute 호출 후, the_struct는 StructA와 StructB의 변수를 가지며 StructB의 인스턴스가 됩니다.
추가 활용 예제
예제 3: 여러 인수 전달
function calculate_area(length, width) {
return length * width;
}
var area = script_execute(calculate_area, 5, 10);
예제 4: 조건에 따른 함수 호출
function action_one() {
show_debug_message("Action One Executed");
}
function action_two() {
show_debug_message("Action Two Executed");
}
var action = irandom(1) == 0 ? action_one : action_two;
script_execute(action);
예제 5: 배열을 통한 인수 전달
function print_values(value_array) {
for (var i = 0; i < array_length(value_array); i++) {
show_debug_message(value_array[i]);
}
}
var values = [1, 2, 3, 4, 5];
script_execute_ext(print_values, values);
이와 같이 script_execute 함수는 다양한 방식으로 활용될 수 있으며, 복잡한 로직을 간단하게 처리할 수 있도록 도와줍니다.