Flash:セットアップ
Flash: デバッグ

Flash: ビルドと実行

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

次のガイドを手順どおりにしたがって Flash にエクスポートされた新規のプロジェクトをビルドおよび実行できます。

  1. Unity コンテンツを作成
  2. File->Build Settings を選択して Build Settings ダイアログを起動してシーンを全て追加
  3. Platform を Flash Player に変更
  4. Target Player はデフォルトのまま。このオプションにより必要とする機能にもとづいて ターゲット Flash Player を変更が出来ます(詳細については http://www.adobe.com/support/documentation/en/flashplayer/releasenotes.htmlを参照して下さい)。
  5. Development Build をチェック。(これにより Unity は 最終 SWF ファイルを圧縮 しません 。圧縮しないことでビルドは速くなり,そしてさらに SWF ファイルは Flash Player での実行前に解凍する必要がありません。 Development Build オプションを用いてビルドした空のシーンで 16MB ぐらいのサイズであり,圧縮の場合は 2MB ぐらいであることに留意して下さい。)
  6. Build ボタンを押下

Unity は SWF ファイルを選択した場所にビルドします。追加で次のファイルを作成します:

  • HTML ファイル - Flashでビルドされたコンテンツの表示に使用
  • swfobject.js ファイル - Flash Player および ブラウザ統合のチェックをハンドリング
  • embeddingapi.swc ファイル

Flashでビルドされたコンテンツを表示するには HTML ファイルを開きます。SWF ファイルを直接開かないで下さい。

ビルドおよび実行により同じファイルを作成し,デフォルトブラウザを起動し,そして生成されたHTML ファイルをロードします。

ビルドで作成された embeddingapi.swc ファイルにより自身のプロジェクトで SWF をロード出来るようになります。Unity コンテンツを標準 Flash プロジェクトに埋め込むことで Flash で GUI が使用出来るようになります。この種の Flash 統合は他のビルドターゲットでは動作しません。

他のビルドターゲットと同様,指定できるプレイヤー設定があります。ほとんどの Flash 設定は他のプラットフォームと共通です。コンテンツの解像度はスタンドアローンプレイヤー設定から取得されることに留意して下さい。

Flash API ではテクスチャ ハンドルがあり, SWC 埋め込みとの組み合わせで Flash からの Webcam,動画,ベクトルグラフィックスをテクスチャとして扱う手段となります。

ビルドプロセス

Unity Flash パブリッシャ はスクリプトを C#/UnityScript から ActionScript へ変換を試みます。このプロセスにおいて,2 種類の変換エラーがありえます:

  • Unity コード から ActionScript への変換時のエラー
  • 変換コードをコンパイルするときのエラー

変換時のエラーは元ファイルを指し示し,UnityScript エラーメッセージでおなじみのファイル名および行番号がつきます。

AcionScript 変換コードをコンパイルするときのエラーは生成された ActionScript コード(ファイル名が .as で終わる)のメッセージが表示されます。

AcionScript 変換コードのデバッグ

ビルドのとき,AcionScript 変換コードのファイル (.as) はプロジェクトフォルダの次の場所に格納されます:

  • /Temp/StagingArea/Data/ConvertedDotNetCode/

もしSWF ファイルでエラーに遭遇した場合(実行時またはビルドの際に),この変換コードをみると便利です。

コンパイル時のあらゆるActionScriptエラーは容易に理解できないことがありえます。ActionScript はあくまで自身のゲームスクリプト コードから生成されているため,変更をしないといけないのは自身のオリジナルコードであり,ActionScript 変換コードでないことを忘れないで下さい。

特定 Flash Player バージョン向けのビルド

Build Settingsウィンドウでのドロップダウン ボックスによりどの Flash Player バージョンをターゲットとするか選択することが出来ます。これはUnity プロジェクトを作成/開くにあたって,デフォルトでサポートされている Flash Player のうちもっとも古いバージョン(現在11.2)となります。

もし特定 Flash Player バージョン向けのビルドを行いたい場合は,エディタ スクリプトを作成してビルドを自動化できます。これを行うためには,エディタスクリプトからFlashをビルドするときに EditorUserBuildSettingsFlashBuildSubtarget を指定できます。サンプルとしては:

EditorUserBuildSettings.flashBuildSubtarget = FlashBuildSubtarget.Flash11dot2;
BuildPipeline.BuildPlayer(..., ..., BuildTarget.FlashPlayer, BuildOptions.Development);


ビルドエラーおよび警告の例

Flash エクスポート時に遭遇するかもしれない,良くあるエラー/警告を以下にまとめます。自身のエラーが以下に含まれてない場合も, Forums および Answers でもFlash エクスポート専用のセクションがあり役立つ場合があります。

Unable to find Java

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

'TerrainCollider' is not supported when building for FlashPlayer. 
'TerrainData' is not supported when building for FlashPlayer. 
Asset: 'Assets/New Terrain.asset'


Terrain 機能は FlashPlayer ターゲット向けのビルドではサポートされていません。全ての サポートされていない機能 は同様の警告が生成されます。しかしビルドは継続し,サポートされてない機能は最終 SWF から欠落します。

Unboxing

Error: Call to a possibly undefined method RuntimeServices_UnboxSingle_Object through a reference with static type Class.


この原因はUnityScript側で定義された型の間の変換が, 自身の Flash パブリッシャーで定義されてないことである可能性が高いです。 Unbox に絡んだ全てのエラーは,型変換が必要であるけれども見つからなかったことを意味します。この問題を解決するためには:

  • #pragma strict を使用することを忘れず,全ての “implicit downcast” 警告メッセージに対処します。
  • 経験則上は実行時のオブジェクト型からプリミティブ型(int, float, その他)へのキャストを回避することです。さらに次のようにして,ジェネリックなコンテナより,明示的なコンテナを優先してください:
    • System.Collections.Generic.List.<float> instead of Array
    • Dictionary<string, float> instead of Hashtable

UnauthorizedAccessException

Error building Player: UnauthorizedAccessException: Access to the path "Temp/StagingArea/Data/ConvertedDotNetCode/global" is denied.


もしUnityが生成したActionScriptがテキストエディタで開かれている場合,Unityがこのエラーを発行してビルドを拒否する場合があります。これを解決するためには,ActionScriptファイルを閉じてUnityが上書きできるようにします。

Flash:セットアップ
Flash: デバッグ