ここは森のゲーム開発室・・・
忘れられた技術ブログ・・・
Unityを使い始めて1年が経った・・・だいぶ慣れて来たような気もする・・・しかしクマには1つ不満があった・・・それは・・・
Unityエディタで実行時に、開いてるシーンじゃなくてトップのシーンから再生して、停止後は開いてたシーンに戻る方法ありそうでみつからないクマ
— ふりふら (@shakeflower) February 4, 2019
そう、Unityエディタはプレイするとそのとき開いてたシーンから実行される。
そして停止すると、そのとき開いていたシーンが編集状態にになる。
これはこれでいいのだクマ、いいのだけど・・・
開発中盤以降になってきて、ある程度ゲームができてくると・・・
「トップのシーンから起動したい(初期化とかの関係で)」
「エディタを終了したら、起動前に開いてた編集シーンに戻ってほしい」
という場面が割と出てくるクマ。しかしこれを実現しようとすると・・・
編集中のシーンを保存する→
トップのシーンを開く→
エディタを再生する→
どこかの画面でエディタを停止する→
編集中のシーンを再び開く
めんどくさい!!
この疑問をTwitterに投げると、様々な知見をいただけたクマ。
(各シーンの起動処理に、タイトル画面に遷移するスクリプトやマクロを仕込んでおくなど。なるほどなるほど・・・!)
そしてさらに調べる間にクマは思い当たる・・・
もしかしてUnityエディター拡張でもいけるんじゃ・・・
(自作したことないけど・・・)
やりたいこと。以下を実現できるコマンドを作るックマ。
・どのシーンにいようと、トップシーンから再生したい。
→Scenes in Buildの先頭シーン(0)の自動取得。任意のシーンからの再生指定。
・停止したら、再生前に編集中だったシーンに戻ってほしい
→エディタの再生/停止とかのイベントを取得。
以下、参考にさせていただいたページですクマ。
むむむ・・・
むむむむ・・・
できらぁ!!(できそう!!)
できた。
PlayTopAndBackScene.cs
この、ものすごい長いいびつな名前のcsファイルをAssets/Editorフォルダに突っ込み、
[Tools]→[PlayTopAndBackScene]
またはショートカットキーで
[command+t]
すると・・・
Unityエディタ拡張を使って、特定シーンから必ずプレイ開始し、停止後は編集中だったシーンに戻ってきてくれるコマンドが爆誕したクマ
— ふりふら (@shakeflower) February 4, 2019
これでトップ画面から動かしたいときにトップシーン開く手間&デバッグ終了後に編集中だったシーンに戻る手間を削減できる
こっこれがエディタ拡張・・・! pic.twitter.com/uVJCRjQjSN
とはいえ、Unityエディター拡張の経験自体が浅いので、いろんな場面で正しく動くかはわかりませんクマ。エディター拡張に詳しい人やクマやカラスや猫、待ってますクマ!!
[追記]
やりたかったことの全てがここにあったクマ。これを使おう!!
(昨日調べてた時に読んだ気がするのに頭からすぅーっと消えてた)
今回はエディタのお勉強をしたと思うックマ。