FlashからUnityにデータを提供したい場合,次の種類がサポートされます。さらにデータを表現するクラスを作成することも出来ます (一致する C# or JavaScript 実装を提供することによって。)
最初に,オブジェクトのAction Script 3 実装を作成し,プロジェクトにクラスを含めます (ActionScriptと名前をつけたフォルダに):
package
{
public class ExampleObject
{
public var anInt : int;
public var someString : String;
public var aBool : Boolean;
}
}
次にAction Script 3 実装に合うC# または JavaScriptオブジェクトを作成します。
以下の NotRenamed 属性は コンストラクタ,メソッド,フィールド,およびプロパティの name mangling を防止します。
NotConverted 属性はビルド パイプラインにある型またはメンバをターゲット プラットフォームに変換しないように指示します。通常Flashにビルドするとき,C#/JavaScript スクリプトはActionScript (.as
) スクリプトに変換されます。 [NotConverted] 属性を追加することでプロセスのオーバーライドが行われ,自身のオリジナルの .as スクリプトを手動で提供出来ます。自身で提供するダミーのC#/JavaScriptによりUnityにクラスのシグニチャを知らせ(すなわちどのクラスをコールが許可されるか),自身のの .as スクリプトそれらの関数の実装を提供します。ActionScript バージョンはFlashにビルドしたときのみ使用されることに留意して下さい。エディタ上または他のプラットフォーム向けにビルドするときUnityはC#/JavaScriptバージョンを使用します。
The NotFlashValidated attribute explicitly tells the Flash validator to skip the type or member, that way it can be implemented.
[NotConverted]
[NotRenamed]
public class ExampleObject
{
[NotRenamed]
public int anInt;
[NotRenamed]
public string someString;
[NotRenamed]
public bool aBool;
}
@NotConverted
@NotRenamed
class ExampleObject
{
@NotRenamed
public var anInt : int;
@NotRenamed
public var someString : String;
@NotRenamed
public var aBool : boolean;
}
次にAction Script 3 に自身のオブジェクトを取得する方法が必要です。例えば:
public static function getExampleObject() : ExampleObject
{
return new ExampleObject();
}
次にオブジェクトを取得してデータをアクセスします:
ExampleObject exampleObj = UnityEngine.Flash.ActionScript.Expression<ExampleObject>("MyStaticASClass.getExampleObject()");
Debug.Log(exampleObj.someString);