Unity5版のヒヨコ本を読む の続き
そこまで大きく躓くこともなく、Chapter7まで読み終わった。
いくつか消化できていないところがあるものの、C#で簡単なアプリを作成したくらいのスキルでもなんとかなったので改めて良い入門書だと思う。
引っかかった点を記録に残しておく。
シーンの移行
テキスト内ではゲームオーバーでリスタートボタンを押したときの挙動として、Application.LoadLevel()を使用するようになっているが、その通り記述すると下記のような警告が出た。
'Application.LoadLevel(string)' は旧形式です ('Use SceneManager.LoadScene')
何のこっちゃと調べてみると、LoadLevelはObsolete(古い使い方)なので今後はSceneManager.LoadSceneを使いなさい、ということだった。つい最近の変更らしい。
Unity - スクリプトリファレンス: Application.LoadLevel
ということで、下記のように修正した。
Application.LoadLevel(sceneName);
↓
SceneManager.LoadScene(sceneName);
ソースの冒頭に「using UnityEngine.SceneManagement;」を忘れず追記すること。
// 2016/4/29 追記
現在読み込んでいるシーンを再読み込みするとき、以前は下記のようにしていた。
Application.LoadLevel(Application.loadedLevel);
これは現在読み込んでいるシーンのインデックスを使用している。
同じようなことを実装する場合、今後は下記のどちらかを使用する。
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); // インデックスを使用する場合
SceneManager.LoadScene(SceneManager.GetActiveScene().name); // シーン名を使用する場合
// 2016/4/29 追記ここまで
ライティングが無効になる
リスタート等のLoadScene()を呼び出すと、ライティングが無効になってしまうバグ?があるらしく、自分の環境(Ver.5.3.4)でも発生していた。
リスタート前、こんな色合いの背景なのに
リスタート後、ライトが有効になっていないのかこんな暗さに
下記で詳しく解説されているが、理解の追いつかない点が多々・・・。
シーンの読込時に"ライティングが無効になる/色が変になる"不具合の対処法 - テラシュールブログ
とにかく、ライティングのベイクとやらが自動で行われるのが原因らしい。
メニューバーのWindow→Lightingを選択すると下記のようなウィンドウが出るので、Autoのチェックボックスを外してやるとうまくいった。