おはようございます!
1月16日 木曜日。ときどき晴れ間が見える曇り。
予想気温9/4℃。寒いわけです。午後は太陽がもう少し顔を覗かせそうな。
さて、今日もゲーム制作を学んでまいります。
今日の教材はこちら、
[PR]
よしやっていこう!
CHAPTER 3 スクリプトで動かそう
CHAPTER 3.1 スクリプトはUnityのプログラム
🐶 新しいシーンを追加する
「シーン」
→ゲームの「1つの画面」や「1つのステージ」などのこと
・Unityの「シーン」のイメージ

・メニューの「ファイル – 新しいシーン」から「シーン」を新規作成
![Unityで新規2Dシーンを作成する画面を示しています。[Basic 2D(Built-in)]テンプレートを選択し、[Create]ボタンをクリックすることで、新しい2Dシーンを作成することができます。](https://noplog.com/wp-content/uploads/2025/01/unity-0302_create-new-2d-scene.webp)
・「シーン」をメニューの「ファイル」→「保存」で保存しておく(シーン名:chap3)

🐶 スクリプトは「いつ、何をするのか?」で考える
・スクリプトの考え方
①「いつ」=『きっかけ』
②「何をするのか」=『実行内容』
🐶 「ずっと水平に移動する」スクリプト
・改めて車の画像で作ってみる
→画像配置、スクリプトをアタッチし、スピードアップ(1→20)して動かしてみると



はや
<スクリプトを見てみる>

C#か~。Javaに似てる。
JavaがC#に似てるのか。
移動速度のデフォルトは「1」となっている。
public float speed = 1; //[速度]
Unityでは、「スピード」のような調整したい値は、以下の形の通り「public」で記述する。
public <変数の型名> <変数名> = <値>;
・「ずっと」と「水平に移動」のコーディング箇所

書式:ゲームオブジェクトをX、Y、Z方向に移動させる
transform.Translate(X, Y, Z);
CHAPTER 3.2 「ときどき、曲がる」をさらにアタッチ
🐶 オブジェクトに複数のスクリプトをアタッチする
複数のスクリプトをアタッチすることができる。
「ときどき、曲がる(SometimeTurn)」を追加でアタッチする。
Unityエディタ右側を見ると、「SometimeTurn」が追加されているのがわかる。

ちなみに、スクリプトを追加するときは↑のやり方でも問題ないが、対象の画像を選択後「コンポーネントを追加(Add Component)」ボタンからでも追加できる。
・追加するところ
・追加後


・「ときどき、曲がる(SometimeTurn)」追加後の動き

・[Angle]プロパティ=「120」、[Max Count]プロパティ=「80」にしてみると

<スクリプトを見てみる>

・書式:ゲームオブジェクトを回転させる
translate.Rotate(X, Y, Z);
CHAPTER 3.3 「ときどき、反転する」に差し替える
🐶 オブジェクトのスクリプトを削除してから付け替える
「ときどき、曲がる(SometimeTurn)」スクリプトで[Angle=180]にすると、上下逆さまになって逆方向に進むようになる。

それはあれだな・・・
「ときどき、曲がる(SometimeTurn)」スクリプトを削除し、「ときどき、反転する(SometimeFlip)」スクリプトをアタッチする。


「Play」ボタンにて動作確認をすると、


おお~
<スクリプトを見てみる>

なるほど!右に動いてるときは元の絵なので反転させてないのね。つまり、

①右に動いてる時:flipFlag=false
②右端で折り返す時:「flipFlag = !flipFlag;」で「flipFlag=true」になる
③左に動いてる時:flipFlag=true
④左端で折り返す時:「flipFlag = !flipFlag;」で「flipFlag=false」になる
※④の時は、元の絵に対して180度回転させているわけだから上下反転は必要ない
ですよね。。だって、上下反転させた正常な車の画像に対して180度回転させるとまた上下逆さまになってしまうからねぇ。。考え方は合ってると思います。

あってるはず・・・
・書式:trueとfalseを切り替える
<変数名> =! <変数名>;
・書式:ゲームオブジェクトの絵を上下反転させる
GetComponent<SpriteRenderer>().flipY = <trueで上下反転>;
最後ちょっと頭がこんがらがってしまいましたが、ようやくスッキリしました。
図解にはしませんが、要するに180度回転後は実像で、上下反転後は虚像ってことですね。
最初の折り返しの時の右から左に移動する車の画像は虚像を見ているってことです。
実像は上下逆さまのまま。
180度回転処理は常に実像に対して行われている、はず。。。

まちがいない・・・
今日はスクリプトをアタッチしてみて終わりかな~と思ってたら、最後の最後で頭をめっちゃ使いました。
ではでは、寒い夜に備えるためこれにて終了です。
おつかれさまでした~(=゚ω゚)ノ