Flash: 規模の大きなプロジェクトでUnity により生成された Flash コンテンツを埋め込む
サンプル: ActionScript 関数を Unity からコールする

サンプル: データを Flash から Unity に提供

FlashからUnityにデータを提供したい場合,次の種類がサポートされます。さらにデータを表現するクラスを作成することも出来ます (一致する C# or JavaScript 実装を提供することによって。)

最初に,オブジェクトのAction Script 3 実装を作成し,プロジェクトにクラスを含めます (ActionScriptと名前をつけたフォルダに):

ActionScript 3

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.

C#

[NotConverted]
[NotRenamed]
public class ExampleObject
{
    [NotRenamed]
    public int anInt;
    
    [NotRenamed]
    public string someString;
    
    [NotRenamed]
    public bool aBool;
}

JavaScript

@NotConverted
@NotRenamed
class ExampleObject
{
    @NotRenamed
    public var anInt : int;
    
    @NotRenamed
    public var someString : String;
    
    @NotRenamed
    public var aBool : boolean;
}


次にAction Script 3 に自身のオブジェクトを取得する方法が必要です。例えば:

ActionScript 3

public static function getExampleObject() : ExampleObject
{
    return new ExampleObject();
}

次にオブジェクトを取得してデータをアクセスします:

ExampleObject exampleObj = UnityEngine.Flash.ActionScript.Expression<ExampleObject>("MyStaticASClass.getExampleObject()");
Debug.Log(exampleObj.someString);

Flash: 規模の大きなプロジェクトでUnity により生成された Flash コンテンツを埋め込む
サンプル: ActionScript 関数を Unity からコールする