이 예제는 유니티에서 다른 AS3(ActionScript3) 함수들을 호출하는 방법을 보여줍니다. 세 개의 스크립트를 참고하실 수 있습니다:
Flash로 빌드하는 경우에, ExampleClass의 AS3 동작(구현)이 사용됩니다. 에디터모드 또는 Flash가 아닌 다른 플랫폼에서 실행하는 경우 C#/JavaScript 동작(구현)이 사용됩니다.
public class ExampleClass { public static function aStaticFunction() : void { trace("aStaticFunction - AS3 Implementation"); } public static function aStaticFunctionWithParams(a : int) : void { trace("aStaticFunctionWithParams - AS3 Implementation"); } public static function aStaticFunctionWithReturnType() : int { trace("aStaticFunctionWithReturnType - AS3 Implementation"); return 1; } public function aFunction() : void { trace("aFunction - AS3 Implementation"); } }
사용자가 C# 또는 JavaScript를 이용해서 AS3 동작(구현)을 모방하는 클래스를 생성할 수 있습니다. 해당 동작(구현)은 매우 유사합니다. 두 예제 모두 아래에 제공됩니다.
using UnityEngine; [NotRenamed] [NotConverted] public class ExampleClass { [NotRenamed] public static void aStaticFunction() { Debug.Log("aStaticFunction - C# Implementation"); } [NotRenamed] public static void aStaticFunctionWithParams(int a) { Debug.Log("aStaticFunctionWithParams - C# Implementation"); } [NotRenamed] public static int aStaticFunctionWithReturnType() { Debug.Log("aStaticFunctionWithReturnType - C# Implementation"); return 1; } [NotRenamed] public void aFunction() { Debug.Log("aFunction - C# Implementation"); } }
@NotConverted @NotRenamed class ExampleClass { @NotRenamed static function aStaticFunction() { Debug.Log("aStaticFunction - JS Implementation"); } @NotRenamed static function aStaticFunctionWithParams(a : int) { Debug.Log("aStaticFunctionWithParams - JS Implementation"); } @NotRenamed static function aStaticFunctionWithReturnType() : int { Debug.Log("aStaticFunctionWithReturnType - JS Implementation"); return 1; } @NotRenamed function aFunction() { Debug.Log("aFunction - JS Implementation"); } }
ExampleClass.aStaticFunction(); ExampleClass.aStaticFunctionWithParams(1); int returnedValue = ExampleClass.aStaticFunctionWithReturnType(); ExampleClass exampleClass = new ExampleClass(); exampleClass.aFunction();
주의: 플래시 내보내기 기능은 현재 개발자 프리뷰로 사용 가능합니다. 이 기능은 아직 개발 중이므로 위 정보는 변경 될 수 있습니다.