p.146 画面の端に来たら折り返す
・画面の右端のX座標は2.5、左端は-2.5となっているので、これを超えたら増分であるmoveの符号を反転すると良い
p.146 shooter.cs
using UnityEngine;
public class shooter : MonoBehaviour {
float move = 0.05f; //単精度実数型のフィールド変数moveの初期化
void Update() {
Vector3 pos = transform.position; //構造体Vector3のオブジェクトposをプロパティを利して生成
pos.x += move; //オブジェクトposの持つ変数xにmoveの値を足し込む
if (pos.x < -2.5f) { //左端に来ていたら
move = 0.05f; //増分を正にする事で反転する
}
if (pos.x > 2.5f) { //左端に来ていたら
move = -0.05f; //増分を負にする事で反転する
}
transform.position = pos; //オブジェクトposをtransformプロパティに渡すと画面に反映
}
}
アレンジ演習:p.146 shooter.cs
・反転するために実数リテラル0.05fを何度も記述するのは保守性が低下する ・変数moveの符号を反転する処理に書き換えよう ・すると、一つのif文にできることを確認しよう
作成例
//アレンジ演習:p.146 shooter.cs
using UnityEngine;
public class shooter : MonoBehaviour {
float move = 0.05f; //単精度実数型のフィールド変数moveの初期化
void Update() {
Vector3 pos = transform.position; //構造体Vector3のオブジェクトposをプロパティを利して生成
pos.x += move; //オブジェクトposの持つ変数xにmoveの値を足し込む
if (pos.x < -2.5f || pos.x > 2.5f) { //【変更】両端に来ていたら
move = -move; //【変更】増分の符号を反転することで逆向きにする
}
transform.position = pos; //オブジェクトposをtransformプロパティに渡すと画面に反映
}
}
p.148「自然な動き」を表現するRigidbody2Dコンポーネント
・物体の左右移動に対して、上下移動では引力の影響を加味することが多い ・これをプログラムで記述できるが、Unityが提供しているコンポーネントを用いると便利 ・加えて、衝突による跳ね返りを含む「物理法則に則った動き」を提供するのがRigidbody2Dコンポーネント ・なお、本来「物理法則に則った動き」を実装するには、衝突による変形を加味すべきだが、ゲームにおいては、 変形を加味しなくても構わない場合が多く、動作を軽くできる ・この考え方が「剛体(変形しない物体)」で、Rigidbodyは剛体のこと
p.148 野菜のゲームオブジェクトを作成する:補足
・Rigidbody2Dコンポーネントは、Physics2Dというカテゴリーに分類されており、2Dの物理的なオブジェクトを扱う部品群に含まれている ・Rigidbody2Dコンポーネントには、Gravity Scale(重力スケール)や Mass(質量)などの設定項目があり、 これらを初期値の1から増減することで落下をコントロールできる
p.150 ゲームの背景色を変更
・①[Hierarchy]の[Main Camera] ・②[Camera]の[Background] ・③中央の〇を左上にドラッグして、RGBの値がすべて255になることを確認 ・④[×]で閉じる ・⑤[File][Save]してから、プレイボタンで実行
p.151 [Color]ダイアログボックス
・Unityでは色に関する設定項目をクリックすると[Color]ダイアログボックスが表示され、直感的に色を選択できる ・[Color]ダイアログボックスの上部にある円環は色相環といい、赤からマゼンタ経由で青へ、 青から黄色経由で赤へと似た色を並べていくと連続的な「色合い」の変化になることを表している ・中央にある正方形は明度を表すもので、色相環で選ばれている色から、左上の白か、右下の黒に近づけることで 「明るさ」の変化になることを表している ・設定された色はRGBの3色の配合度合いで数値化され、各0から255の256段階になる ・よって、色数としては256の3乗=16,777,216色が表現できる ・なお、企業向けのアプリでは、企業が決めているコーポレートカラーのRGB値を正確に指定することが求められるので注意 例:auは「235, 85, 5」DoCoMoは「204 0 51」 ・Aのスライダで透明度を設定できる(後方にあるオブジェクトの色を透過させる割合で、0であれば非透過)
p.152 プレハブを使ってゲームオブジェクトを量産する
・プレハブ:プレ(あらかじめ用意されている)ファブリケーション(構造物)の略で、Unityではゲームオブジェクトの 原型になる基礎オブジェクトのこと ・作成済のオブジェクトをプレハブにすることで、このプレハブを継承して類似のオブジェクトを作成できる ・これはコピペではなく継承なので、プレハブに対する変更は、プレハブから作成されたオブジェクトに自動的に反映する ・また、プレハブを継承したプレハブを作成できるので、階層構造で作成や管理が可能(クラスと同様)
p.153 プレハブを作成する
・①の前に「Scene」をクリック
p.154 プレハブを継承したプレハブを作る
・プレハブのインスタンスになっていることを立方体のアイコンで確認してから、再度、ドラッグ&ドロップ ・ここで表示されるダイアログは、 ①Original Prefab(プレハブを新規作成) ②Prefab Variant(プレハブを継承して作成) ③キャンセル の三種で、②を選ぶこと ・p.155①「Open Prefab」は「Open」ボタン ・p.157「同じように」の内容を丁寧に行うこと
提出:アレンジ演習:p.146 shooter.cs