현재 셰이더 가져오기
이 문서는 현재 렌더링에 사용되고 있는 셰이더의 핸들을 반환하는 shader_current() 함수에 대해 설명합니다. 만약 사용 중인 셰이더가 없다면 -1을 반환합니다.
문법
shader_current();
반환값
- 셰이더 자산 (Shader Asset)
- -1 (셰이더가 할당되지 않은 경우)
예제
다음 코드는 현재 셰이더가 무엇인지 확인하고, 만약 -1이 반환되면 (즉, 사용 중인 셰이더가 없으면) sh_warp 셰이더를 설정합니다.
if (shader_current() == -1) {
shader_set(sh_warp);
}
활용 예제
| 예제 번호 | 설명 |
|---|---|
| 1 | 현재 셰이더가 특정 셰이더인지 확인하고, 다르면 변경하기 |
| 2 | 셰이더가 활성화된 경우에만 특정 효과 적용하기 |
| 3 | 여러 셰이더를 순차적으로 적용하여 다양한 비주얼 효과 만들기 |
| 4 | 게임의 특정 상황에 따라 셰이더를 동적으로 변경하기 |
예제 코드 스니펫
// 예제 1: 현재 셰이더가 'sh_effect'인지 확인하고 변경
if (shader_current() != sh_effect) {
shader_set(sh_effect);
}
// 예제 2: 셰이더가 활성화된 경우에만 효과 적용
if (shader_current() != -1) {
// 효과 적용 코드
}
// 예제 3: 여러 셰이더를 순차적으로 적용
shader_set(sh_first);
draw_sprite(sprite_index, 0, x, y);
shader_set(sh_second);
draw_sprite(sprite_index, 0, x + 10, y);
// 예제 4: 특정 상황에 따라 셰이더 변경
if (game_state == "battle") {
shader_set(sh_battle);
} else {
shader_set(sh_exploration);
}