UDN
Search public documentation:
CanvasTechnicalGuideKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3 홈 > 유저 인터페이스와 HUD > 캔버스 테크니컬 가이드
캔버스 테크니컬 가이드
문서 변경내역: Jeff Wilson 작성. 홍성진 번역.
개요
캔버스 클래스
캔버스 속성
Drawing (그리기)- DrawColor (그리기 색) - 그리기에 사용할 색입니다. 텍스트에 사용합니다.
- Font (폰트) - 텍스트 그리기에 사용할 폰트입니다.
- DefaultTexture (디폴트 텍스처) - 텍스처 파라미터가 지정되지 않았을 때 텍스처 기반 엘리먼트를 그릴 때 디폴트로 사용할 텍스처입니다.
- Org[X/Y] (원점) - 현재 클리핑 구역에 대한 가로 세로 원점입니다.
- Clip[X/Y] (클립) - 현재 클리핑 구역에 대한 우하단 구석입니다.
- Cur[X/Y/Z] (커) - 그리기를 할 현재 위치입니다.
- CurYL (커YL) - 지난
DrawText()
호출 이후로 그려진 엘리먼트 중 세로로 가장 큰 크기입니다. - Size[X/Y] (크기) - 캔버스를 그릴 뷰포트의 가로 세로 치수입니다.
- bCenter (중앙?) - 참이면 그려지는 텍스트가 중앙화됩니다.
- bNoSmooth (스무딩 없이?) - 참이면 캔버스에 그려지는 엘리먼트에 바이리니어 필터링이 적용됩니다.
캔버스 함수
General (일반)- Reset [bKeepOrigin] - 각 업데이트마다 캔버스 속성 리셋을 위해 엔진이 호출하는 이벤트입니다.
- bKeepOrigin - 참이면
OrgX
및OrgY
속성을 리셋하지 않습니다.
- bKeepOrigin - 참이면
- SetPos [PosX] [PosY] [PosZ] - 캔버스의 현재 그리기 위치를 설정합니다.
- Pos[X/Y/Z] - 그리기를 할 가로 세로 위치입니다. 디폴트 Z 값은 1.0으로, 이 함수를 호출할 땐 보통 생략됩니다.
- SetOrigin [X] [Y] - 캔버스의 클리핑 구역용 원점을 설정합니다.
- [X/Y] - 픽셀 단위의 가로 세로 위치입니다.
- SetClip [X] [Y] - 캔버스의 클리핑 구역 좌하단 위치입니다.
- [X/Y] - 픽셀 단위의 가로 세로 위치입니다.
- SetDrawColor [R] [G] [B] [A] - 주어진 값으로 색을 만들고 캔버스의
DrawColor
를 설정합니다.- [R/G/B/A] - 빨강, 초록, 파랑, 알파 값입니다.
- SetDrawColorStruct [C] - 주어진 색을 사용하여 캔버스의
DrawColor
를 설정합니다.- C - 사용할 색입니다.
- MakeIcon [Texture] [U] [V] [UL] [VL] - 주어진 텍스처를 사용하여 CanvasIcon(캔버스 아이콘)을 새로 만들어 반환합니다.
- Texture - 아이콘을 뽑아낼 텍스처입니다.
- [U/V] - 사용될 텍스처 좌상단 부분의 가로 세로 위치입니다. 텍셀 값입니다.
- [UL/VL] - 사용될 텍스처 부분의 폭과 높이입니다. 텍셀 값입니다.
- DrawIcon [Icon] [X] [Y] [Scale] - 주어진 스케일의 캔버스 아이콘을 위치에다 그립니다.
- Icon - 그릴 캔버스 아이콘입니다.
- [X/Y] - 화면상에 아이콘을 그릴 때 사용할 픽셀단위 가로 세로 위치입니다.
- Scale - 아이콘에 적용할 스케일 값입니다.
- DrawRect [RectX] [RectY] [Tex] - 현재 그리기 위치에다 주어진 크기의 사각형을 현재
DrawColor
로 채워 그립니다.- Rect[X/Y] - 그릴 사각형의 폭과 높이입니다.
- Tex - 옵션. 사각형을 채울 텍스처입니다. 디폴트는 캔버스의 DefaultTexture 입니다.
- DrawBox [width] [height] - 캔버스의 현재 그리기 위치에다 주어진 크기의 사각형에다 2 픽셀 외곽선을 포함하여 그립니다.
- width - 그릴 박스의 폭입니다.
- height - 그릴 박스의 높이입니다.
- Draw2DLine [X1] [Y1] [X2] [Y2] [LineColor] - 화면상에 선을 그립니다.
- [X/Y]1 - 선을 그리기 시작할 픽셀 단위 가로 세로 위치입니다.
- [X/Y]2 - 선을 그리기 끝낼 픽셀 단위 가로 세로 위치입니다.
- LineColor - 선을 그리는 데 사용할 색입니다.
- DrawTextureLine [StartPoint] [EndPoint] [Perc] [Width] [LineColor] [LineTexture] [U] [V] [UL] [VL] - 회전되고 텍스처링된 타일을 사용하여 2D 선을 그립니다.
- StartPoint - 선을 그리기 시작할 점입니다. 화면-공간 픽셀 좌표가 있는 X와 T 컴포넌트 포함 벡터입니다.
- EndPoint - 선을 그리기 끝낼 점입니다. 화면-공간 픽셀 좌표가 있는 X와 T 컴포넌트 포함 벡터입니다.
- Perc - 그려낼 선의 양입니다.
StartPoint
에서EndPoint
까지의 총 거리에서 이 값을 뺀 결과가 렌더링되는 선의 총 길이가 됩니다. 렌더링되는 선은StartPoint
와EndPoint
사이의 중심점을 항상 가운데로 놓게 됩니다. - Width - 각 선의 픽셀 단위 폭입니다.
- LineColor - 첫 선에 입힐 색입니다.
- Tex - 선을 그리는 데 사용할 텍스처입니다.
- [U/V] - 사용될 텍스처 좌상단 부분의 가로 세로 위치입니다. 텍셀 값입니다.
- [UL/VL] - 사용될 텍스처 부분의 폭과 높이입니다. 텍셀 값입니다.
- DrawTextureDoubleLine [StartPoint] [EndPoint] [Perc] [Spacing] [Width] [LineColor] [AltLineColor] [Tex] [U] [V] [UL] [VL] - 회전되고 텍스처링된 타일을 사용하여 2D 겹선을 그립니다.
- StartPoint - 선을 그리기 시작할 점입니다. 화면-공간 픽셀 좌표가 있는 X와 T 컴포넌트 포함 벡터입니다.
- EndPoint - 선을 그리기 끝낼 점입니다. 화면-공간 픽셀 좌표가 있는 X와 T 컴포넌트 포함 벡터입니다.
- Perc - 그려낼 선의 양입니다.
StartPoint
에서EndPoint
까지의 총 거리에서 이 값을 뺀 결과가 렌더링되는 선의 총 길이가 됩니다. 렌더링되는 선은StartPoint
와EndPoint
사이의 중심점을 항상 가운데로 놓게 됩니다. - Spacing - 겹선의 각 선 사이 픽셀 단위 거리입니다.
- Width - 각 선의 픽셀 단위 폭입니다.
- LineColor - 첫 선에 입힐 색입니다.
- AltLineColor - 둘째 선에 입힐 색입니다.
- Tex - 선을 그리는 데 사용할 텍스처입니다.
- [U/V] - 사용될 텍스처 좌상단 부분의 가로 세로 위치입니다. 텍셀 값입니다.
- [UL/VL] - 사용될 텍스처 부분의 폭과 높이입니다. 텍셀 값입니다.
- DrawDebugGraph [Title] [ValueX] [ValueY] [UL_X] [UL_Y] [W] [H] [RangeX] [RangeY] - 두 변수를 비교하는 그래프를 그립니다. 시각적인 디버깅 및 트위킹에 좋습니다.
- Title - 그래프에 그릴 라벨로, 없애려면 "" 입니다.
- Value[X/Y] - 그래프의 가로 세로 축에 찍을 점 값입니다.
- UL_[X/Y] - 화면상 그래프 좌상단의 픽셀 단위 가로 세로 위치입니다.
- [W/H] - 그래프의 픽셀 단위 폭과 높이입니다.
- Range[X/Y] - 가로 세로 축에 대한 그래프에 표시되는 값의 범위입니다.
- CreateFontRenderInfo [bClipText] [bEnableShadow] [GlowColor] [GlowOuterRadius] [GlowInnerRadius] - 주어진 속성을 가지고 FontRenderInfo 를 새로 만들어 반환합니다.
- bClipText - 참이면 이 FontRenderInfo 로 그려진 텍스트가 클리핑됩니다.
- bEnableShadow - 참이면 이 FontRenderInfo 로 그려진 텍스트가 음영됩니다.
- GlowColor - 빛나는 텍스트에 사용할 바탕색입니다.
- GlowOuterRadius - 빛나는 외곽선의 외부 반경(0~1, 0.5는 캐릭터 실루엣의 에지)을 지정하는 벡터2D로, 빛나는 영향력은 GlowOuterRadius.X 에서 0, GlowOuterRadius.Y 에서 1이 됩니다.
- GlowInnerRadius - 빛나는 외곽선의 내부 반경(0~1, 0.5는 캐릭터 실루엣의 에지)을 지정하는 벡터2D로, 빛나는 영향력은 GlowOuterRadius.X 에서 1, GlowOuterRadius.Y 에서 0이 됩니다.
- StrLen [String] [XL] [YL] - 주어진 문자열의 가로 세로 크기를 계산합니다. 텍스트 줄바꾸기도 칩니다.
- String - 크기를 구할 텍스트입니다.
- [X/Y]L - 출력. 텍스트의 가로 세로 크기를 출력합니다.
- TextSize [String] [XL] [YL] - 주어진 문자열의 가로 세로 크기를 계산합니다. 클리핑된 텍스트에 사용되기에 줄바꾸기는 치지 않습니다.
- String - 크기를 구할 텍스트입니다.
- [X/Y]L - 출력. 텍스트의 가로 세로 크기를 출력합니다.
- DrawText [Text] [CR] [XScale] [YScale] [RenderInfo] - 텍스트 문자열을 화면에 그립니다.
- Text - 그릴 텍스트 문자열입니다.
- CR - 옵션. 참이면 예전에 그린 텍스트의 크기만큼 현재 그리기 위치를 세로로 증가시킵니다.
- [X/Y]Scale - 옵션. 텍스트에 적용할 가로 세로 스케일 값입니다.
- RenderInfo - 옵션. 텍스트를 그릴 때 사용할
FontRenderInfo
입니다.
- DrawTile [Tex] [XL] [YL] [U] [V] [UL] [VL] [LColor] [ClipTile] [Blend] - 축-정렬된 쿼드에 텍스처를, 현재 그리기 위치(CurX,CurY)에다 그립니다.
- Tex - 그릴 텍스처입니다.
- [XL/YL] - 그릴 타일의 폭과 높이입니다.
- [U/V] - 그릴 텍스처의 좌상단 부분의 가로 세로 위치입니다. 텍셀 값입니다.
- [UL/VL] - 그릴 텍스처 부분의 폭과 높이입니다. 텍셀 값입니다.
- LColor - 타일에 입힐 색입니다.
- ClipTile - 참이면 이 타일은 클리핑 구역에 의해 클리핑됩니다.
- Blend - 옵션. 타일을 그릴 때 사용할
EBlendMode
블렌딩 모드입니다.
- PreOptimizeDrawTiles [Num] [Tex] [Blend] - 앞으로 계속되는 DrawTile() 호출에 대한 버텍스와 트라이앵글을, 같은 텍스처와 블렌딩 모드를 사용하여 미리-할당합니다.
- Num - 이번 함수 호출에 잇따라
DrawTile()
을 실행시킬 횟수입니다. 이 횟수만큼의DrawTile()
호출이 실행되기 전에 다른 (텍스트, 다른 텍스처 등의) 그리기가 실행되어 버리면 최적화가 되지 않아 메모리만 낭비하게 됩니다. - Tex - 잇따르는 호출에서 사용할 텍스처입니다.
- Blend - 잇따르는 호출에서 사용할
EBlendMode
블렌딩 모드입니다.
- Num - 이번 함수 호출에 잇따라
- DrawMaterialTile [Mat] [XL] [YL] [U] [V] [UL] [VL] [LColor] [ClipTile] [Blend] - 축-정렬된 쿼드에 머티리얼을, 현재 그리기 위치(CurX, CurY)에다 그립니다.
- Mat - 그릴 머티리얼입니다.
- [XL/YL] - 그릴 타일의 폭과 높이입니다.
- [U/V] - 그릴 머티리얼 좌상단 부분의 가로 세로 좌표입니다. [0,1] 범위의 퍼센트 값입니다.
- [UL/VL] - 그릴 텍스처 부분의 폭과 높이입니다. [0,1] 범위의 퍼센트 값입니다.
- LColor - 타일에 입힐 색입니다.
- ClipTile - 참이면 타일이 클리핑 구역에 의해 글리핑됩니다.
- DrawRotatedTile [Tex] [Rotation] [XL] [YL] [U] [V] [UL] [VL] [AnchorX] [AnchorY] - 회전된 쿼드에다 텍스처를, 현재 그리기 위치(CurX, CurY)에다 그립니다.
- Tex - 그릴 텍스처입니다.
- Rotation - 타일의 회전을 지정하는 Rotator 입니다.
- [XL/YL] - 그릴 타일을 폭과 높이입니다.
- [U/V] - 그릴 텍스처 좌상단 부분의 가로 세로 위치입니다. 텍셀 값입니다.
- [UL/VL] - 그릴 텍스처 부분의 폭과 높이입니다. 텍셀 값입니다.
- Anchor[X/Y] - 회전의 피벗 포인트로 사용할 타일 좌상단에 상대적인 가로 세로 위치로, 픽셀 단위입니다.
- DrawRotatedMaterialTile [Mat] [Rotation] [XL] [YL] [U] [V] [UL] [VL] [AnchorX] [AnchorY] - 회전된 쿼드에다 머티리얼을, 현재 그리기 위치(CurX, CurY)에다 그립니다.
- Mat - 그릴 머티리얼입니다.
- Rotation - 타일 회전을 지정하는 로테이터입니다.
- [XL/YL] - 그릴 타일의 폭과 높이입니다.
- [U/V] - 그릴 머티리얼 좌상단 부분의 가로 세로 좌표입니다. [0,1] 범위의 퍼센트 값입니다.
- [UL/VL] - 그릴 텍스처 부분의 폭과 높이입니다. [0,1] 범위의 퍼센트 값입니다.
- Anchor[X/Y] - 회전의 피벗 포인트로 사용할 타일의 좌상단에 상대적인 가로 세로 위치로, 픽셀 단위입니다.
- DrawTileStretched [Tex] [Rotation] [XL] [YL] [U] [V] [UL] [VL] [LColor] [bStretchHorizontally] [bStretchVertically] - 현재 그리기 위치 (CurX, CurY)에 텍스처를 축-정렬된 쿼드로 늘려 그립니다. 텍스처는 타일에 맞게 늘려지며, 텍스처의 온전함은 유지됩니다. 텍스처의 외곽선 부분은 변하지 않고, 안쪽 부분만 스케일 조절되기에 어떤 크기의 박스를 그리는 데도 좋습니다.
- Tex - 그릴 텍스처입니다.
- [XL/YL] - 그릴 타일의 폭과 높이입니다.
- [U/V] - 그려질 텍스처 좌상단 부분의 가로 세로 위치입니다. 텍셀 값입니다.
- [UL/VL] - 그릴 텍스처 부분의 폭과 높이입니다. 텍셀 값입니다.
- LColor - 타일에 입힐 색입니다.
- bStretchHorizontally - 옵션. 참이면 타일은 스케일 조절되는 대신 가로로 늘어집니다.
- bStretchVertically - 옵션. 참이면 타일은 스케일 조절되는 대신 세로로 늘어집니다.
- DrawTris [Tex] [Triangles] - 화면에다 트라이앵글 배열을 그립니다.
- Tex - 트라이앵글에 적용할 텍스처입니다.
- Triangles - 그릴
CanvasUVTris
배열입니다.
- DrawTexture [Tex] [Scale] - 화면에다 주어진 텍스처 전체를 지정된 스케일로 그립니다.
- Tex - 그릴 텍스처입니다.
- Scale - 그려진 타일에 적용할 스케일입니다. 최종 렌더링되는 타일의 치수는:
(Scale * Tex.SizeX x Scale * Tex.SizeY)
- DrawTextureBlended [Tex] [Scale] [Blend] - 화면에다 주어진 텍스처 전체를 지정된 스케일로, 지정된 블렌드 모드로 그립니다.
- Tex - 그릴 텍스처입니다.
- Scale - 그려진 타일에 적용할 스케일입니다. 최종 렌더링되는 타일의 치수는:
(Scale * Tex.SizeX x Scale * Tex.SizeY)
- Blend - 사용할
EBlendMode
블렌딩 모드입니다.
- Project [location] - 3D 월드-공간 벡터를 2D 화면 좌표로 변형합니다.
- location - 변형할 월드-공간 벡터입니다.
- DeProject [ScreenPos] [WorldOrigin] [WorldDirection] - 2D 화면 좌표를 3D 월드-공간 원점 및 방향으로 변형합니다. 곧이어 이는 광선-고르기(ray-picking)를 하기 위한 추적에 사용될 수 있습니다.
- ScreenPos - 변형시킬 화면 좌표를 나타내는 Vector2D로, 픽셀 단위입니다.
- WorldOrigin - 출력. 월드-공간 원점 벡터를 출력합니다.
- WorldDirection - 출력. 월드-공간 방향 벡터를 출력합니다.
- PushTranslationMatrix [TranslationVector] - 캔버스 위에다 옮기기 매트릭스를 푸시(push)합니다.
- TranslationVector - 옮기기 매트릭스를 만드는 데 사용할 옮기기 벡터입니다.
- PopTransform - 캔버스 변형 스택으로부터 최상위 매트릭스를 팝(pop)합니다.
캔버스 그리기
Project 및 DeProject
Project
Project()
함수는 액터의 위치와 같은 월드-공간의 벡터를 받은 다음, 그것을 2D 화면 좌표로 변형합니다.
컴퓨터 화면이 게임 월드를 들여다 보고 있는 창이라고 상상해 보십시오. 그리고 눈에서부터 "창" 반대편에 있는 월드상의 액터로 선 추적을 한다 해 봅시다. 그 선과 창이 만나는 지점이 Project()
함수에 의해 반환되는 화면 좌표가 될 것입니다.
화면상의 액터 위치 계산을 통해서, 관련된 액터의 월드상 위치에다 그래픽이나 텍스트 또는 그 둘의 조합을 겹쳐 나타나게 하는 것이 간단해 집니다. 이 기능의 기본적인 사용 예는 아마도 게임 내 플레이어 위에 이름이 떠다니게 하는 것 정도입니다.
DeProject
DeProject()
함수는 화면 좌표 세트를 Vector2D의 형태로 받은 다음 그것들을 광선의 컴포넌트인 원점 및 방향 벡터로 변형합니다.
원점 및 방향 벡터는, 마우스가 현재 떠 있는 월드상의 위치에다 십자선을 투영하거나 마우스 선택 등의 동작을 하기 위해 Trace()
함수에 사용할 시작 및 끝 벡터를 만드는 데 사용할 수 있습니다.
블렌딩 모드
EBlendMode
에는 다음 항목이 포함됩니다:
- BLEND_Opaque - 최종 색 = 원본(Source) 색. 이 블렌드 모드는 라이팅과 호환됩니다.
- BLEND_Masked - OpacityMask < OpacityMaskClipValue 이면 최종 색 = 원본 색. 아니면 픽셀은 버려집니다. 이 블렌드 모드는 라이팅과 호환됩니다.
- BLEND_Translucent - 최종 색 = 원본 색 * 불투명(Opacity) + 대상(Dest) 색 * (1 - 불투명). 이 블렌드 모드는 다이내믹 라이팅과 호환되지 않습니다.
- BLEND_Additive - 최종 색 = 원본 색 + 대상 색. 이 블렌드 모드는 다이내믹 라이팅과 호환되지 않습니다.
- BLEND_Modulate - 최종 색 = 원본 색 * 대상 색. 이 블렌드 모드는 데칼 머티리얼이 아니고서야 안개나 다이내믹 라이팅과 호환되지 않습니다.
- BLEND_SoftMasked - BLEND_Masked 와 유사하나, 불투명 및 투명 경계 사이가 뿌얘집니다. 이 모드를 사용하는 데는 약간의 제약이 있습니다. 자세한 정보는 SoftMaskedKR 페이지를 참고해 주시기 바랍니다.
- BLEND_AlphaComposite - 알파가 미리 곱해진(premultiplied) 텍스처를 가진 머티리얼에 사용됩니다. 즉 알파가 이미 곱해진 컬러 채널이기 때문에, 프레임 버퍼와 블렌딩할 때 GPU가 전형적으로 알파 블렌딩에 사용하는 (SrcAlpha * SrcColor) 연산을 건너뛸 수 있습니다. 이 블렌드 모드는 스케일폼 GFx 통합의 일부로 추가되었는데, 여기서는 보통 UI 텍스처의 블렌딩에 이런 종류의 모드를 사용하기 때문입니다.
캔버스 아이콘
DrawIcon()
입니다. 이 함수는 캔버스 아이콘의 속성을 사용하여 단순히 DrawTile()
호출을 수행합니다. 캔버스 아이콘을 늘여 그린다든지 특수한 함수성이 필요한 경우에는, 그 처리를 위해 HUD 클래스에 커스텀 그리기 함수를 만들어야 합니다.
예제:
/** * CanvasIcon 을 특정 캔버스 위치에다 늘여서 그립니다. */ final function DrawIconStretched(CanvasIcon Icon, float X, float Y, optional float ScaleX, optional float ScaleY) { if (Icon.Texture != None) { // 속성 가용여부 확인 if (ScaleX <= 0.f) { ScaleX = 1.f; } if (ScaleY <= 0.f) { ScaleY = 1.f; } if (Icon.UL == 0.f) { Icon.UL = Icon.Texture.GetSurfaceWidth(); } if (Icon.VL == 0.f) { Icon.VL = Icon.Texture.GetSurfaceHeight(); } // 캔버스 위치 설정 Canvas.SetPos(X, Y); // 그리고 텍스처 그리기 Canvas.DrawTileStretched(Icon.Texture, Abs(Icon.UL) * ScaleX, Abs(Icon.VL) * ScaleY, Icon.U, Icon.V, Icon.UL, Icon.VL,, true, true); } }
캔버스 HUD 예제
class UDNHUD extends MobileHUD; var Texture2D DefaultTexture; var Font PlayerFont; var float PlayerNameScale; var CanvasIcon HealthIcon; var CanvasIcon HealthBackgroundIcon; function DrawHUD() { local Vector2D TextSize; super.DrawHUD(); //플레이어 생명력 그리기 Canvas.DrawIcon(HealthIcon, 8, 8, 0.5); Canvas.Font = PlayerFont; Canvas.SetDrawColorStruct(WhiteColor); DrawIconStretched(HealthBackgroundIcon, 0, 0, 2.167, 0.875); Canvas.TextSize(PlayerOwner.Pawn.Health, TextSize.X, TextSize.Y); Canvas.SetPos(96 - (TextSize.X * PlayerNameScale / RatioX),0); Canvas.DrawText(PlayerOwner.Pawn.Health,,PlayerNameScale / RatioX,PlayerNameScale / RatioY); //플레이어 이름 그리기 Canvas.SetPos(0, SizeY - 64); Canvas.DrawTileStretched(DefaultTexture,256, 64, 8, 72, 112, 48, ColorToLinearColor(GreenColor), true, true, 1.0); Canvas.TextSize(UTPlayerController(PlayerOwner).PlayerReplicationInfo.PlayerName, TextSize.X, TextSize.Y); Canvas.SetPos(128 - ((TextSize.X * PlayerNameScale / RatioX) / 2), SizeY - 28 - ((TextSize.Y * PlayerNameScale / RatioY) / 2)); Canvas.DrawText(UTPlayerController(PlayerOwner).PlayerReplicationInfo.PlayerName,,PlayerNameScale / RatioX,PlayerNameScale / RatioY); } /** * CanvasIcon을 특정 캔버스 위치에다 늘여서 그립니다. */ final function DrawIconStretched(CanvasIcon Icon, float X, float Y, optional float ScaleX, optional float ScaleY) { if (Icon.Texture != None) { // 속성 가용여부 확인 if (ScaleX <= 0.f) { ScaleX = 1.f; } if (ScaleY <= 0.f) { ScaleY = 1.f; } if (Icon.UL == 0.f) { Icon.UL = Icon.Texture.GetSurfaceWidth(); } if (Icon.VL == 0.f) { Icon.VL = Icon.Texture.GetSurfaceHeight(); } // 캔버스 위치 설정 Canvas.SetPos(X, Y); // 그리고 텍스처 그리기 Canvas.DrawTileStretched(Icon.Texture, Abs(Icon.UL) * ScaleX, Abs(Icon.VL) * ScaleY, Icon.U, Icon.V, Icon.UL, Icon.VL,, true, true); } } defaultproperties { DefaultTexture=Texture2D'UDNHUDContent.UDN_HUDGraphics' PlayerFont="UI_Fonts.MultiFonts.MF_HudLarge" PlayerNameScale=0.25 HealthIcon=(Texture=Texture2D'UDNHUDContent.UDN_HUDGraphics',U=72,V=8,UL=48,VL=48) HealthBackgroundIcon=(Texture=Texture2D'UDNHUDContent.UDN_HUDGraphics',U=8,V=8,UL=48,VL=48) }
class UDNGame extends UTGame; defaultproperties { bUseClassicHUD=true HUDType=class'UDNExamples.UDNHUD' }