次のガイドを手順どおりにしたがって Flash にエクスポートされた新規のプロジェクトをビルドおよび実行できます。
Unity は SWF ファイルを選択した場所にビルドします。追加で次のファイルを作成します:
Flashでビルドされたコンテンツを表示するには HTML ファイルを開きます。SWF ファイルを直接開かないで下さい。
ビルドおよび実行により同じファイルを作成し,デフォルトブラウザを起動し,そして生成されたHTML ファイルをロードします。
ビルドで作成された embeddingapi.swc ファイルにより自身のプロジェクトで SWF をロード出来るようになります。Unity コンテンツを標準 Flash プロジェクトに埋め込むことで Flash で GUI が使用出来るようになります。この種の Flash 統合は他のビルドターゲットでは動作しません。
他のビルドターゲットと同様,指定できるプレイヤー設定があります。ほとんどの Flash 設定は他のプラットフォームと共通です。コンテンツの解像度はスタンドアローンプレイヤー設定から取得されることに留意して下さい。
Flash API ではテクスチャ ハンドルがあり, SWC 埋め込みとの組み合わせで Flash からの Webcam,動画,ベクトルグラフィックスをテクスチャとして扱う手段となります。
Unity Flash パブリッシャ はスクリプトを C#/UnityScript から ActionScript へ変換を試みます。このプロセスにおいて,2 種類の変換エラーがありえます:
変換時のエラーは元ファイルを指し示し,UnityScript エラーメッセージでおなじみのファイル名および行番号がつきます。
AcionScript 変換コードをコンパイルするときのエラーは生成された ActionScript コード(ファイル名が .as
で終わる)のメッセージが表示されます。
ビルドのとき,AcionScript 変換コードのファイル (.as
) はプロジェクトフォルダの次の場所に格納されます:
もしSWF ファイルでエラーに遭遇した場合(実行時またはビルドの際に),この変換コードをみると便利です。
コンパイル時のあらゆるActionScriptエラーは容易に理解できないことがありえます。ActionScript はあくまで自身のゲームスクリプト コードから生成されているため,変更をしないといけないのは自身のオリジナルコードであり,ActionScript 変換コードでないことを忘れないで下さい。
Build Settingsウィンドウでのドロップダウン ボックスによりどの Flash Player バージョンをターゲットとするか選択することが出来ます。これはUnity プロジェクトを作成/開くにあたって,デフォルトでサポートされている Flash Player のうちもっとも古いバージョン(現在11.2)となります。
もし特定 Flash Player バージョン向けのビルドを行いたい場合は,エディタ スクリプトを作成してビルドを自動化できます。これを行うためには,エディタスクリプトからFlashをビルドするときに EditorUserBuildSettings で FlashBuildSubtarget を指定できます。サンプルとしては:
EditorUserBuildSettings.flashBuildSubtarget = FlashBuildSubtarget.Flash11dot2;
BuildPipeline.BuildPlayer(..., ..., BuildTarget.FlashPlayer, BuildOptions.Development);
Flash エクスポート時に遭遇するかもしれない,良くあるエラー/警告を以下にまとめます。自身のエラーが以下に含まれてない場合も, Forums および Answers でもFlash エクスポート専用のセクションがあり役立つ場合があります。
Error building Player: Exception: Compiling SWF Failed: Unable to launch Java - is the Java Runtime Environment (JRE) installed?
もしビルド時に上記のエラーに遭遇した場合 32-bit JRE をインストール して再試行してください。
'TerrainCollider' is not supported when building for FlashPlayer.
'TerrainData' is not supported when building for FlashPlayer.
Asset: 'Assets/New Terrain.asset'
Terrain 機能は FlashPlayer ターゲット向けのビルドではサポートされていません。全ての サポートされていない機能 は同様の警告が生成されます。しかしビルドは継続し,サポートされてない機能は最終 SWF から欠落します。
Error: Call to a possibly undefined method RuntimeServices_UnboxSingle_Object through a reference with static type Class.
この原因はUnityScript側で定義された型の間の変換が, 自身の Flash パブリッシャーで定義されてないことである可能性が高いです。 Unbox
に絡んだ全てのエラーは,型変換が必要であるけれども見つからなかったことを意味します。この問題を解決するためには:
#pragma strict
を使用することを忘れず,全ての “implicit downcast” 警告メッセージに対処します。Error building Player: UnauthorizedAccessException: Access to the path "Temp/StagingArea/Data/ConvertedDotNetCode/global" is denied.
もしUnityが生成したActionScriptがテキストエディタで開かれている場合,Unityがこのエラーを発行してビルドを拒否する場合があります。これを解決するためには,ActionScriptファイルを閉じてUnityが上書きできるようにします。