폰트 정보 조회 함수 설명
font_get_info
함수는 주어진 폰트에 대한 정보를 조회하는 데 사용됩니다. 폰트 인덱스를 제공해야 하며, 이는 자산 브라우저를 통해 추가된 폰트나 런타임에 추가된 폰트가 될 수 있습니다. 이 함수는 여러 변수들이 포함된 구조체를 반환합니다.
폰트 정보 구조체
리턴되는 구조체는 다음과 같은 변수를 포함합니다:
변수 이름 | 데이터 타입 | 설명 |
---|---|---|
ascender | Real | 폰트의 ascender 높이 (픽셀 단위) |
ascenderOffset | Real | 기준선에서 폰트 상단까지의 최대 오프셋 (픽셀 단위) |
size | Real | 폰트의 대략적인 크기 (픽셀 단위) |
spriteIndex | Sprite Asset | 폰트가 스프라이트에서 생성된 경우 스프라이트 인덱스, 아니면 -1 |
texture | Real | 폰트가 스프라이트에서 생성된 경우 -1, 아니면 폰트의 텍스처 ID |
name | String | 폰트의 이름 |
bold | Boolean | 폰트가 굵은 경우 true, 그렇지 않으면 false |
italic | Boolean | 폰트가 이탤릭인 경우 true, 그렇지 않으면 false |
glyphs | Font Glyph Struct | 폰트의 각 글자에 대한 정보가 포함된 구조체 |
sdfEnabled | Boolean | SDF가 이 폰트에 대해 활성화 또는 비활성화됨을 나타냄 |
sdfSpread | Real | 이 폰트에 대해 설정된 SDF 확산 값 |
effectsEnabled | Boolean | 이 폰트에 대한 효과가 활성화되었는지 여부를 나타냄 |
effectParams | Struct | 이 폰트를 위한 효과 구조체. font_enable_effects로 변경 가능 |
주의 사항
- bold와 italic 변수는 사용자의 설정만 반영하므로, 기본적으로 굵거나 이탤릭인 폰트에 대해 정확하지 않을 수 있습니다.
- 제공된 폰트가 존재하지 않으면 함수는
undefined
를 반환합니다. - glyphs 구조체 내의 변수 값을 변경해도 폰트의 렌더링 방식은 변경되지 않으며, 이 정보는 읽기 전용으로 간주되어야 합니다.
글리프 구조체
리턴된 구조체의 glyphs 변수는 각 글자에 대한 정보를 포함하는 구조체입니다.
글리프 정보 접근하기
다음 예제 코드를 통해 글리프의 정보를 조회할 수 있습니다:
var _font_info = font_get_info(Font1);
var _info_A = _font_info.glyphs[$ "A"]; // $는 구조체 접근자
show_debug_message(_info_A);
위 코드에서는 "A" 글자에 대한 글리프 구조체를 가져와 출력 로그에 인쇄합니다. 문자열 ("A") 대신 변수를 사용하면 런타임에 그 변수를 통해 어떤 글자에 대한 정보도 얻을 수 있습니다.
글리프 구조체
다음은 글리프를 위한 구조체 변수를 설명합니다:
변수 이름 | 데이터 타입 | 설명 |
---|---|---|
char | Real | 폰트가 스프라이트에서 생성된 경우 글리프의 이미지 인덱스, 아니면 유니코드 문자 번호 |
x | Real | 텍스처 페이지에서 글리프의 X 위치 (텍셀 단위) |
y | Real | 텍스처 페이지에서 글리프의 Y 위치 (텍셀 단위) |
w | Real | 텍스처 페이지에서 글리프의 너비 (텍셀 단위) |
h | Real | 텍스처 페이지에서 글리프의 높이 (텍셀 단위) |
shift | Real | 다음 문자로 이동할 때 오른쪽으로 이동할 픽셀 수 (음수 가능) |
offset | Real | 이 글리프의 렌더링을 좌우로 이동하는 픽셀 수 (양수 또는 음수 가능) |
kerning | Array | 쌍으로 된 kerning 정보를 포함하는 정수 배열 |
예제 코드
폰트 정보 조회 및 조건에 따른 행동
아래의 예제 코드는 특정 폰트의 정보를 조회하고, 결과에 따라 특정 행동을 수행합니다:
var _info = font_get_info(my_font);
if (_info != undefined && _info.bold) {
image_xscale *= 2; // 이미지의 X 스케일을 두 배로
image_yscale *= 2; // 이미지의 Y 스케일을 두 배로
}
이 코드는 my_font
변수에 저장된 폰트의 정보를 조회하고, 반환된 값이 undefined
가 아니며 폰트가 굵은 경우 인스턴스의 스케일을 두 배로 만듭니다.
위의 내용과 예시를 통해 font_get_info
함수와 활용법에 대한 이해를 높이길 바랍니다!