마우스 인터페이스 만들기 - 언리얼 스크립트 버전.
상위 링크 : http://udn.epicgames.com/Three/DevelopmentKitGemsKR.html
참조 링크 : http://udn.epicgames.com/Three/DevelopmentKitGemsCreatingAMouseInterfaceKR.html
화면에 커서를 추가하는 방법은 언리얼 스크립트를 사용 하는 방법과 스케일폼을
쓰는 방법이 있다.
여기선 언리얼 스크립트 버전을 만든다.
우선 메인이 되는 GameInfo부터 설정한다.
class MouseInterfaceGameInfo extends GameInfo;
DefaultProperties
{
// HUD 타입을 마우스 인터페이스 HUD 로 설정
HUDType=class'MouseInterfaceHUD'
// 플레이어 콘트롤러를 마우스 인터페이스 플레이어 콘트롤러로 설정
PlayerControllerClass=class'MouseInterfacePlayerController'
}
하는 일은 그냥 HUD와 PlayerControllerClass를 설정해 주는 정도이다.
우선 PlayerControllerClass를 보자면
class MouseInterfacePlayerController extends PlayerController;
// null 함수
function UpdateRotation(float DeltaTime);
DefaultProperties
{
// 인풋 클래스 지정.
InputClass=class'MouseInterfacePlayerInput'
}
하는일은 단지 InputClass를 지정해 주는 것 뿐이다.
그렇다면 MouseInterfacePlayerInput을 보자.
class MouseInterfacePlayerInput extends PlayerInput;
// 저장된 마우스 위치, 다른 클래스는 readonly 권한.
var PrivateWrite IntPoint MousePosition;
event PlayerInput(float DeltaTime)
{
// 마우스 처리
// HUD가 있는지 검사
if(myHUD != none)
{
// 마우스 위치에 aMouseX를 더하고 뷰포트 폭 내로 제한.
MousePosition.X = Clamp(MousePosition.X + aMouseX, 0, myHUD.SizeX);
// 마우스 위치에 aMouseY를 더한 다음 뷰포트 높이내로 제한
MousePosition.Y = Clamp(MousePosition.Y - aMouseY, 0, myHUD.SizeY);
}
super.PlayerInput(DeltaTime);
}
하는일은 단순히 MousePosition 변수에 마우스 위치를 저장해 주는 것 뿐이다.
마지막으로 HUD를 보면 아래와 같다.
class MouseInterfaceHUD extends HUD;
// 커서의 텍스쳐
var const Texture2D CursorTexture;
// 커서의 색
var const Color CursorColor;
event PostRender()
{
local MouseInterfacePlayerInput MouseInterfacePlayerInput;
// PlayerOwner와 CursorTexture가 검사
if(PlayerOwner != none && CursorTexture != none)
{
// MouseInterfacePlayerInput을 구하기 위해 형 변환 (PlayerInput -> MouseInterfacePlayerInput)
MouseInterfacePlayerInput = MouseInterfacePlayerInput(PlayerOwner.PlayerInput);
if(MouseInterfacePlayerInput != none)
{
// 마우스 위치로 켄버스 위치 설정.
Canvas.SetPos(MouseInterfacePlayerInput.MousePosition.X, MouseInterfacePlayerInput.MousePosition.Y);
// 커서 컬러 지정
Canvas.DrawColor = CursorColor;
// 화면상에 텍스쳐 그리기
Canvas.DrawTile(CursorTexture, CursorTexture.SizeX, CursorTexture.SizeY, 0.f, 0.f, CursorTexture.SizeX, CursorTexture.SizeY,, true);
}
}
super.PostRender();
}
DefaultProperties
{
CursorColor = (R=255,G=255,B=255,A=255)
CursorTexture=Texture2D'EngineResources.Cursors.Arrow'
}
우선 디폴트에서 커서의 색상과 텍스쳐를 설정한다.
그리고 MouseInterfacePlayerinput에서 설정한 MousePosition값으로 켄버스를 설정하고 렌더링 하면 끝~!!!.
'Unreal > Unreal Script' 카테고리의 다른 글
캔버스(Canavas) 키즈멧 노드 만들기 (0) | 2011.09.21 |
---|---|
마우스 인터페이스 만들기 - 스케일폼 버전. (0) | 2011.09.20 |
화면위 표지 추가하기 (0) | 2011.09.20 |
맵 전용 디버깅 옵션 추가하기 (0) | 2011.09.15 |
기본 게임 퀵 스타트 (0) | 2011.09.07 |