UDN
Search public documentation:

GFxUScriptVarAccessKR
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 홈 > 유저 인터페이스와 HUD > Scaleform GFx > 외부 SWF 파일에서의 UnrealScript 변수 접근법

외부 SWF 파일에서의 UnrealScript 변수 접근법


문서 변경내역: James Tan 작성. 홍성진 번역.

개요


어떻게 하면 UnrealScript 에서 Flash 파일 속으로 변수를 (push 해 주기 보다는) 읽어(들이거나 pull 해) 넣을 것인지 간단하게 보여주는 튜토리얼입니다.

ActionScript
var retVal:Object = {};
retVal = ExternalInterface.call("GetUnrealVariable", "someFloat", "float");
// 파라미터 2 = UnrealScript 의 변수명
// 파라미터 3 = UnrealScript 의 변수형 - float, string 등

trace("My UnrealScript Variable: " + retVal.someFloat);

아쉽게도 동적인 변수명의 사용은, ActionScript 에선 가능하지만 UnrealScript 에선 불가능해 보입니다. 할 수만 있다면야 asval.n = VarName 이런 식으로 간단히 쓸 수 있으면 좋겠지만 여의치 않으니, Flash 에서 swtich 문으로 접근하려는 모든 UnrealScript 변수에 대해 case 를 지정해 주는 조악한 해법이라도 쓰는 수 밖에요.

Unrealscript
var float someFloat;
var string someString;
var bool someBoolean;

someFloat = 1337;
someString = "Boo!";
someBoolean = true;

function GFxObject GetUnrealVariable(string VarName, string VarType)
{
  local GFxObject TempObj;
  local ASValue asval;
  local array<ASValue> args;

  TempObj = CreateObject("Object");
  switch(VarType)
  {
  case ("float"):
    asval.Type = AS_Number;
    break;

  case ("string"):
    asval.Type = AS_String;
    break;

  case ("bool"):
    asval.Type = AS_Boolean;
    break;

  default:
    break;
  }

  switch(VarName)
  {
  case ("someFloat"):
    asval.n = someFloat;
    break;

  case ("someString"):
    asval.s = someString;
    break;

  case ("someBoolean"):
    asval.b = someBoolean;
    break;

  default:
    break;
  }

  args[0] = asval;
  TempObj.Set(VarName, args[0]);

  return TempObj;
}