sequence_instance_override_object 함수 설명
이 문서에서는 sequence_instance_override_object 함수에 대해 설명합니다. 이 함수는 시퀀스에서 사용되는 객체의 모든 인스턴스를 다른 객체로 교체하거나, 특정 인스턴스를 기존 인스턴스로 교체할 수 있습니다.
함수 개요
이 함수는 다음과 같은 매개변수를 필요로 합니다:
- sequence_instance_struct: 수정할 시퀀스 인스턴스 구조체
- object_id: 교체할 객체의 인덱스
- instance_or_object_id: 시퀀스 객체를 교체하는 데 사용할 객체 인덱스 또는 인스턴스 ID
이 함수는 시퀀스 인스턴스에서만 사용할 수 있으며, 시퀀스가 재생되기 전에 호출해야 합니다. 그렇지 않으면 작동하지 않습니다.
사용 예제
예제 1: 객체 ID 교체
var _seq = layer_sequence_create("Background", 0, 0, seq_AnimatedBackground);
var _seq_inst = layer_sequence_get_instance(_seq);
sequence_instance_override_object(_seq_inst, obj_Trees_Winter, obj_Trees_Summer);
위 코드는 주어진 레이어에 새로운 시퀀스 인스턴스를 생성한 후, "obj_Trees_Winter" 객체의 모든 인스턴스를 "obj_Trees_Summer" 객체의 인스턴스로 교체합니다.
예제 2: 객체 ID의 첫 번째 인스턴스를 인스턴스 ID로 교체
var _seq = layer_sequence_create("Background", 0, 0, seq_AnimatedBackground);
var _seq_inst = layer_sequence_get_instance(_seq);
var _inst = instance_find(obj_Tree_Christmas, 0);
if (_inst != noone) {
sequence_instance_override_object(_seq_inst, obj_Trees_Winter, _inst);
}
위 코드는 "Background" 레이어에 새로운 시퀀스 인스턴스를 생성한 후, instance_find를 사용하여 "obj_Tree_Christmas"의 인스턴스를 찾습니다. 인스턴스가 발견되면, 시퀀스에서 "obj_Trees_Winter"의 첫 번째 인스턴스를 이 인스턴스로 교체합니다. 다른 "obj_Trees_Winter" 객체의 트랙은 영향을 받지 않습니다.
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| sequence_instance_struct | Sequence Instance Struct | 수정할 시퀀스 인스턴스 구조체 |
| object_id | Object Asset | 교체할 객체의 인덱스 |
| instance_or_object_id | Object Asset or Instance ID | 시퀀스 객체를 교체하는 데 사용할 객체 인덱스 또는 인스턴스 ID |
활용 예제
예제 3: 여러 객체 인스턴스 교체
var _seq = layer_sequence_create("Foreground", 0, 0, seq_Foreground);
var _seq_inst = layer_sequence_get_instance(_seq);
sequence_instance_override_object(_seq_inst, obj_Clouds, obj_Clouds_Sunny);
이 코드는 "Foreground" 레이어에 새로운 시퀀스 인스턴스를 생성하고, "obj_Clouds"의 모든 인스턴스를 "obj_Clouds_Sunny"로 교체합니다.
예제 4: 특정 인스턴스 교체
var _seq = layer_sequence_create("Effects", 0, 0, seq_SpecialEffects);
var _seq_inst = layer_sequence_get_instance(_seq);
var _inst = instance_find(obj_Sparkle, 0);
if (_inst != noone) {
sequence_instance_override_object(_seq_inst, obj_Smoke, _inst);
}
이 코드는 "Effects" 레이어에 새로운 시퀀스 인스턴스를 생성하고, "obj_Smoke"의 첫 번째 인스턴스를 "obj_Sparkle"로 교체합니다.
예제 5: 시퀀스 인스턴스의 객체 교체
var _seq = layer_sequence_create("UI", 0, 0, seq_UserInterface);
var _seq_inst = layer_sequence_get_instance(_seq);
sequence_instance_override_object(_seq_inst, obj_Button_Normal, obj_Button_Hover);
이 코드는 "UI" 레이어에 새로운 시퀀스 인스턴스를 생성하고, "obj_Button_Normal"의 모든 인스턴스를 "obj_Button_Hover"로 교체합니다.