UDN
Search public documentation:

DevelopmentKitGemsAddingMapSpecificDebuggingOptionsKR
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

UE3 홈 > UDK 젬 > 맵 전용 디버깅 옵션 추가하기

맵 전용 디버깅 옵션 추가하기


문서 변경내역: James Tan 작성. 홍성진 번역.
UDK 2011년 5월 버전으로 최종 테스팅, PC 와 iOS 호환

개요


개발 도중 프로젝트를 디버깅하는 데 있어, 가끔은 언리얼 콘솔에 쉽게 접근할 수 없을 때가 있습니다. iOS 같은 모바일 플랫폼에서는 특히나 더한데요. 여기서는 옵션을 껐다 켰다 토글하는 맵 전용 방식을 알아보겠습니다.

MapInfo 방법


디버깅 데이터 저장을 위해 MapInfo 를 사용하면, 모든 콘텐츠 제작자가 쉽게 디버깅 옵션을 바꿀 수 있습니다. 여기 보이는 디버깅 옵션은 불리언으로 켜고 끌 수만 있는 것이지만, 어떤 변수형을 사용해도 됩니다. 이 방법의 장점은 맵 전용이라, 알려진 문제가 있는 맵에 대해 디버그 옵션 세트를 플랙으로 만들 수 있다는 점입니다. 반면 맵이 시작될 때 맵 인포가 인스턴싱되므로, 플랙을 즉석에서 변경할 수 없다는 단점이 있습니다.

여기서는 디버그 옵션 값을 간단히 구해올 수 있도록 스태틱 함수를 사용했습니다. 함수는 WorldInfo 인스턴스를 찾는 식으로 작동하는데, WorldInfo 에서 찾은 네이티브 스태틱 함수를 사용해서 합니다. WorldInfo 인스턴스를 찾으면, GetMapInfo() 에서 반환된 MapInfo 인스턴스를 형 변환하여 MyMapInfo 인스턴스를 찾습니다. MyMapInfo 인스턴스를 찾으면 MyDebugOption 을 반환합니다.

MyMapInfo.uc
  class MyMapInfo extends MapInfo;
  
  var(Debug) bool MyDebugOption;
  
  static function bool IsDebuggingOptionOn()
  {
    local WorldInfo WorldInfo;
    local MyMapInfo MyMapInfo;
  
    // WorldInfo 인스턴스를 정적으로 스태틱하게 구하기
    WorldInfo = class'WorldInfo'.static.GetWorldInfo();
    if (WorldInfo != None)
    {
      // MyMapInfo 인스턴스 구하기
      MyMapInfo = MyMapInfo(WorldInfo.GetMapInfo());
      if (MyMapInfo != None)
      {
        // MyDebugOption 값 반환
        return MyMapInfo.MyDebugOption;
      }
    }
  
    // WorldInfo 나 MyMapInfo 로의 인스턴스를 구할 수 없어, 디폴트 값 반환
    return false;
  }
  
  defaultproperties
  {
  }
  

Unrealscript 로 구현하는 방법


디버깅 옵션을 사용하면 스태틱 함수 호출만큼이나 간단합니다.

YourClass.uc
  if (class'MyMapInfo'.static.IsDebuggingOptionOn())
  {
    Canvas.SetPos(0, 0);
    Canvas.SetDrawColor(255, 0, 255);
    Canvas.Font = class'Engine'.static.GetTinyFont();
    Canvas.DrawText("Debugging mode enabled");
  }
  

언리얼 에디터에서 사용하는 방법


메인 창의 보기 -> 월드 프로퍼티 를 통해 월드 프로퍼티 창을 엽니다.

Debug_OpenWorldProperties.jpg

World Properties 액터 프로퍼티 창이 열립니다. 여기서 My Map Info 부분의 파랑 화살표를 클릭합니다. 맥락 메뉴가 뜹니다.

Debug_WorldProperties.jpg

MyMapInfo (나 MapInfo 클래스를 호출한 그 무엇이든지)에 클릭하여 새 MapInfo 액터를 만듭니다.

Debug_AddMyMapInfo.jpg

디버깅 옵션을 설정합니다. PIE 로 레벨을 시작할 때, 프로그래머가 디버깅이 지원되도록 구현해 놓았다면 레벨 및/또는 게임을 쉽게 트윅/디버깅할 수 있을 것입니다.

Debug_ToggleOption.jpg