DangerWall の整理
DangerWallオブジェクトが増えてきましたね。Item同様、空のゲーム
オブジェクトを作って整理しましょう。
1. ヒエラルキービューの作成→空のオブジェクトを作成を選択 2. 名前をDangerWallsに変更
3. DangerWallオブジェクトを全てDangerWallsへドラッグ&ドロップ
DangerWall と Stage の静的( static ) 化
先ほどマテリアルで設定した放出(Emission)による発光エフェクト は、発光する側のオブジェクトと光を受けるオブジェクトの両方を静
的(static)に設定することで効果を発揮します。
ライティング( Lighting )設定とマテ リアルの調整
オブジェクトを静的に設定することで放出の発光エフェクトが反映さ れるようになりました。この時、発光エフェクト等の情報が裏で処 理・保存されています。この処理のことをベイク(Bake、焼き付け)
と呼びます。
地面の色が濃いとベイクによる変化がわかりにくいかもしれません。
プロジェクトブラウザでGroundMaterialを選択し、色を調整してみま しょう。
87
自動ベイクと手動ベイク
見栄えは良くなりましたが、ベイクはPCに負荷がかかります。また、
ベイク途中でシーンを再生してしまうと表示がおかしくなることがあ ります。
オブジェクトを動かしたり、マテリアルを調整するたびに自動的にベ イクがかかるのを避けるためには、以下の手順でライティングの自動 生成をオフにして手動でベイクしましょう。
1. 画面上部のメニューからウインドウ(Window)→レンダリング
(Rendering)→ライティング設定(Lighting Settings)を選択 2. 下方にある自動生成(Auto Generate)のチェックをオフにする 3. 自動生成の右にあるライティングの生成(Generate Lighting)
を選択
88
89
太陽光の輝度を下げる
DangerWallはマテリアルの設定で放出(Emission)の強度を1.3にし
たため、光っているのですが太陽光の強度(Intensity)が高く、少し 分かり難いです。太陽光の強度を下げて調整してみましょう。
1. ヒエラルキービューのDirectionalLightを選択
2. インスペクタービューでライト(Light)コンポーネントの強度(
Intensity)を0.6に設定
90
最後に、障害物に当たったらシーンを再起動する機能を作成します。
1. ヒエラルキービューでDangerWall 1を選択
2. インスペクタービューでコンポーネントを追加を選択
3. 新しいスクリプトを選択し、名前をDangerWallScriptに設定して作成 して追加を選択
4. オーバーライド→すべてを適用するを選択 5. DangerWallScriptをScriptフォルダーに移動
91
スクリプトによる判定
DangerWallScriptをダブルクリックして開き、「接触したか」の判定を
受けるコールバックを設定します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
publicclassDangerWallScript : MonoBehaviour {
// オブジェクトと接触した時に呼ばれるコールバック voidOnCollisionEnter(Collision hit)
{
// 何かの処理 }
}
92
DangerWallの接触対象がPlayerタグを持つオブジェクトの場合、シー ンを再読込し、ゲームを最初の状態にリセットします。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
publicclassDangerWallScript : MonoBehaviour {
// オブジェクトと接触した時に呼ばれるコールバック voidOnCollisionEnter(Collision hit)
{
// 接触したオブジェクトのタグが"Player"の場合 if (hit.gameObject.CompareTag ("Player")) {
// 現在のシーン番号を取得
int sceneIndex = SceneManager.GetActiveScene().buildIndex;
// 現在のシーンを再読込する
SceneManager.LoadScene(sceneIndex);
} } }
ゲームを再生してみてください。DangerWallに当たるとゲームがリ セットされてしまうため、精密な操作を要求するゲームになりました ね!
93