sprite_get_uvs 함수 설명
sprite_get_uvs 함수는 스프라이트 서브 이미지의 텍스처에 대한 UV 좌표와 기타 데이터를 포함하는 배열을 반환합니다. 이 함수는 다음과 같은 8개의 요소를 가진 배열을 반환합니다:
| 인덱스 | 설명 |
|---|---|
| [0] | 왼쪽 좌표 (left) |
| [1] | 위쪽 좌표 (top) |
| [2] | 오른쪽 좌표 (right) |
| [3] | 아래쪽 좌표 (bottom) |
| [4] | 스프라이트의 왼쪽에서 잘린 픽셀 수 |
| [5] | 스프라이트의 위쪽에서 잘린 픽셀 수 |
| [6] | 텍스처 페이지에 저장된 원본 스프라이트 너비의 정규화된 비율 |
| [7] | 텍스처 페이지에 저장된 원본 스프라이트 높이의 정규화된 비율 |
이 배열은 다른 드로우 함수에서 사용할 수 있으며, 특히 3D 작업이나 Primitive 함수, Shader 함수와 함께 사용할 때 유용합니다. 이 함수는 벡터 스프라이트나 스켈레톤 애니메이션 스프라이트와는 작동하지 않습니다.
문법
sprite_get_uvs(sprite, subimage);
인수 설명
- sprite: 스프라이트 자산의 인덱스
- subimage: 사용할 스프라이트의 서브 이미지
반환값
- Array (1D, 8 elements): UV 좌표와 관련된 데이터가 포함된 배열
예제
var _tex = sprite_get_uvs(sprite, 0);
tex_left = _tex[0];
tex_top = _tex[1];
tex_right = _tex[2];
tex_bottom = _tex[3];
위의 코드는 주어진 스프라이트의 UV 좌표를 로컬 배열에 저장하고, 그 값을 인스턴스 변수에 할당합니다.
활용 예제
- 3D 모델 텍스처링
var uvs = sprite_get_uvs(my_sprite, 0);
draw_3d_model(my_model, uvs[0], uvs[1], uvs[2], uvs[3]);
- Primitive 드로잉
var uvs = sprite_get_uvs(my_sprite, 0);
draw_primitive_begin(pr_trianglelist);
draw_vertex(uvs[0], uvs[1]);
draw_vertex(uvs[2], uvs[1]);
draw_vertex(uvs[0], uvs[3]);
draw_primitive_end();
- Shader와 함께 사용
var uvs = sprite_get_uvs(my_sprite, 0);
shader_set(my_shader);
shader_set_uniform_f("u_left", uvs[0]);
shader_set_uniform_f("u_top", uvs[1]);
shader_set_uniform_f("u_right", uvs[2]);
shader_set_uniform_f("u_bottom", uvs[3]);
이와 같이 sprite_get_uvs 함수를 활용하여 다양한 그래픽 작업을 수행할 수 있습니다.