サンプル: データを Flash から Unity に提供
サンプル: ブラウザ JavaScript 通信

サンプル: ActionScript 関数を Unity からコールする

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

このサンプルでは異なるAction Script 3 (以下,AS3) 関数を Unity からコールする方法を示します。3つのスクリプトを見ていただきます:

  • 異なる関数の例を含むAS3 クラス (ExampleClass.as)。作成する全ての AS3 クラスはプロジェクトの “ActionScript” フォルダに格納する必要があります。
  • AS3 実装を模倣するC#/JavaScript w(ExampleClass.cs/js)。これはひとつあれば十分です。
  • Unity から関数をコールするサンプル

Flash 向けにビルドしたとき,ExampleClass の AS3実装が使用されます。エディタ上で実行したとき,または Flash 以外のプラットフォーム向けにビルドした場合,ExampleClass の AS3実装が使用されます。

クラスの ActionScript バージョンを作成することによって,Flash Player 向けにビルドするときに ネイティブの AS3 ライブラリを使用できるようになります。これはFlash エクスポートがサポートされてない .NET ライブラリで作業が必要なときに特に役立ちます。

ActionScript 3 (ExampleClass.as)

package
{
    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");
        }
    }
}


ExampleClass - C#/JavaScript 実装

クラスを作成して AS3 実装 を C# または JavaScriptのいずれかで模倣できます。実装は非常に似通っています。両方のサンプルを以下のとおりに提供します。

C# 実装 (ExampleClass.cs)

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");
    }
}


JavaScript 実装 (ExampleClass.js)

@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");
    }
}



関数をコールする方法

次のコードによりFlash向けにビルドするときに ActionScript (.as) のメソッドをコールします。これによりネイティブ AS3 ライブラリを Flash エクスポート プロジェクトで使用することが出来ます。非Flash プラットフォーム向けにビルドするか,またはエディタで実行するとき,クラスの C#/Javascript実装が使用されます。

ExampleClass.aStaticFunction();
ExampleClass.aStaticFunctionWithParams(1);
int returnedValue = ExampleClass.aStaticFunctionWithReturnType();

ExampleClass exampleClass = new ExampleClass();
exampleClass.aFunction();


サンプル: データを Flash から Unity に提供
サンプル: ブラウザ JavaScript 通信