目次
概要
Unityで作成したシーンとUNITEの行き来ができるようになります。
本機能を使う事で、UNITEの制約に縛られない全く別の表現が可能となります。
本機能を使うには、事前にUnity側でシーンを作成する必要があります。
動作確認できるサンプルを用意しましたので、動くもので確認したい際はご確認ください。
UNITEからUnityシーンを呼び出す
[シーン制御] > [Unityシーンを呼び出す]イベントから使用することができます。
「Unityシーンを呼び出す」イベントコマンドの設定項目は次のとおりです。
① 呼び出すUnityシーンを選択します。
Build Settingsウィンドウを開きます
あらかじめ作成しておいたUnityシーンをBuild Settingsの「ビルドに含まれるシーン」に追加しておく必要があります。
そうすることで、イベントコマンドでシーンの選択が可能になります。
② マップシーンをアンロードするかを選択します
シーンのアンロードにはそれぞれメリット/デメリットが存在します。
③ 受け渡す変数を指定します
ここで指定する変数は、その値をUniteシーン側で参照できます。
また、UNITEに戻るときにUnityシーンの結果としての値がその変数に格納されます。
※「(なし)」を指定した場合は、参照すると0となり、結果の値は格納されません
※変数はint型として参照・格納されます
UnityシーンからUNITEにアクセスする
① 名前空間を指定します。
using RPGMaker.Codebase.Runtime.Event.Screen;
② 「変数」の値を取得します。
CallUnitySceneProcessor.GetVariableValue()
③ 戻り値を指定してUNITEシーンに戻ります。
CallUnitySceneProcessor.ReturnToUnite(num)
Unityシーンがアンロードされ、戻り値(num)が変数に格納され、UNITEに戻ります。
シーンのアンロードについて
CallUnitySceneProcessor.ReturnToUnite()が呼び出されると、
ロードされている全てのシーンのアンロードが行われます(DontDestroyOnLoadとSceneMapは除く)
破棄されたくないGameObjectは、Object.DontDestroyOnLoad()を使って、DontDestroyOnLoadに移すようにしてください。
それらのGameObjectは、可能な限り、SetActive(false)にして非activeにすることをお願いします。
例えばAudioListnerが複数存在するなど、競合の問題を起こす可能性を減らすためです。
Unityシーンが呼び出されたら、非activeにしたGameObjectはactiveに戻すようにしてください。
アセットについて
Unityシーンの実行時に参照するアセットは、UNITEが管理しているアセット、ビルドに含まれるシーンが参照しているアセット、Resources, StreamingAssets配下のアセットのいずれかに含まれている必要があります。
UNITEで行っているAddressableAssetの管理は、UNITEのアセットが対象なので、UnityシーンがAddressableAssetを参照している場合は、追加対応が必要となります。
サンプル
以下に本機能のサンプルを紹介します。
UnityシーンとUnityシーンを呼び出すイベントが設置されています。
※インポートを行う際は新規作成した空のプロジェクトでお試しください
インポート方法は以下になります。
- ダウンロードする
- サンプルパッケージをインポートする
- BuildSettingを行う
- テストプレイを行う
1.ダウンロードします
こちら(https://cdn.tkool.jp/updata/unite/UnityScene_Sample.unitypackage)よりサンプルデータをダウンロードします。
ダウンロードデータはunitypackage形式となっています。
2.サンプルパッケージをインポートする
UNITEを開き、[アセット]>[パッケージをインポート]>[カスタムパッケージ...]を選択します。
ダウンロードしたunitypackageファイルを選択すると以下のポップアップ画面が表示されます。
[インポート]ボタンを押下します。
しばらくすると「Unityシーン呼び出しテスト」というマップが追加されます。
(マップが追加されない時は再起動をしてください)
3.BuildSettingを行う
[RPG Maker]>[レイアウト]>[RPG Maker + Unity Editor]を選択します。
Assets\UnityScene_Sample\UnityScene\TestScene.unityをダブルクリックして、シーンを開きます。
UNITEのウィンドウに戻り「実行ファイルをビルド」アイコンを選択します。
[シーンを追加]ボタンを押下します。
ビルドに含まれるシーンに「UnityScene_Sample/UnityScene/TestScene」が追加されれば成功です。
マップに戻り、プレイヤーの初期位置を設定します。
テストプレイを実行し、クリスタルのイベントにアクションを行います。
以下のシーンが表示されればUnityシーンへの遷移成功です。
5秒経つとUNITEに戻ります。
コメント
0件のコメント
サインインしてコメントを残してください。