読者です 読者をやめる 読者になる 読者になる

趣味プログラマによるOSS開発日誌

趣味で作っているOSSソフトウェアの紹介や関連技術の紹介、楽曲製作、Webデザイン勉強状況を紹介します。

LoadLevelを用いた画面遷移

ゲームはプレイ画面だけでなく、メニューやスコア・設定画面など、様々な画面が存在する。
C++等で画面遷移を行う場合は、Scene(State)パターンを用いて〜とか、Stackにシーンを積んで〜とか考えるのだが、Unityに関してはLoadLevel関数を用いることで画面遷移が簡単に行える。

実際の画面遷移のコードを以下に示す。
シーン名には、作成したシーンの名前が入る。
言語はJavaScript(UnityScript)。

Application.LoadLevel( "シーン名" );

シーンの追加をしたい場合は、以下の方法で作成が可能である。
注意したいのは最後の手順で、最後の手順を忘れていると、Application.LoadLevelはエラーとなってしまう。

  1. 「File」-「New Scene」
  2. 「File」-「Save Scene」 シーン名を入力し、保存
  3. 「File」-「Build Settings」
  4. 「Scene In Build」-「Add Current」 現在開いているシーンが追加される。

このようにシーンの変更は簡単に行えるが、現在のままではいきなり画面が切り替わってしまい、不自然である。
(ゲーム以外でも言えることであるが、突然変化するのは機械的で違和感がある。)
フェードアウトなどのエフェクトを追加する場合は、上記の処理以外に独自にエフェクトのコードを追加する必要がある。