こんにちは、AMGです。
今回の内容はゲーム開発をするうえでよく使うコードを使い、簡単なボタンアクションを実装させたいと思います。
今回使うコードの種類として、If文、for文、Random.Range()を使って行こうと思います。
まだUnityやC#言語を始めたばかりで、何からすればよいか分からない方向けの記事です
内容となっておりますので、是非参考にしていただければと思います!
Random.Range()
Random.Range()
は、Unityゲームエンジンで使用される一般的な関数の一つで、ランダムな数値を生成する為に使われます。
この関数は、指定された範囲内でランダムな浮動小数点数または整数を生成するのに役立ちます。
具体的には、以下のように使います。
float randomNumber = Random.Range(min, max);
このコードでは、min
とmax
は範囲の最小値と最大値を表します。Random.Range()
はこの範囲内でランダムな浮動小数点数を生成し、それをrandomNumber
変数に格納します。
floatで使う事も出来ますが、int型で使用することも出来ます。
今回はint型で記述していこうと思います。
実際に使ってみる
まずはUnityを立ち上げ、毎度おなじみボタンオブジェクトと空のオブジェクトを追加します。
ボタン名を『StartButton』と名付けヒエラルキーに配置します。
ボタンを一回押すごとに、決められた範囲内でランダムに数字をデバッグ表示しようと思います。
次にスクリプトを用意します。
スクリプト名も何でもいいですが、『ButtonScript』という名前にします。
このスクリプトに、簡単にコードを書いていきます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ButtonScript : MonoBehaviour
{
public int randomNumber;
public void OnStartButtonClick(){
randomNumber = Random.Range(0,11);
Debug.Log(randomNumber);
}
}
コードを書き終えたら空のオブジェクトにスクリプトをアタッチします。
『StartButton』→Inspectorの『Button』→『OnClick()』のリストを開き、ここに空のオブジェクトをアタッチ。
No functionとなっている部分をクリックし先ほど追加したメソッドを選択します。
これでゲームを実行すると、ボタンを押す度に0~10の範囲で数字がランダムに表示されるようになります。
for文コード
続いてfor文を用いて、先ほどのrandomNumber分、数字を1~デバッグ表示させたいと思います。
因みに、for
文(フォー・ループ)は、プログラム内で同じコードブロックを繰り返し実行するための一般的なループ構造です。
for (初期化式; 条件式; 更新式)
{
// 繰り返し実行するコード
}
for (int i = 1; i <= randomNumber; i++)
{
Debug.Log(i);
}
上記コードを先ほどのOnStartButtonClick()内に追加します。
ゲームを実行します。
ボタンを押すとランダムナンバー分デバッグ表示がされるようになりました。
<例>randomNumberが5なら、1~5までの数字が表示されます。
if文コード
最後にif文コードを使い処理を分岐させたいと思います。
因みにif文とは、条件によって分岐させたい時に使います。
一番わかりやすいのが、ストーリーの選択肢によってバッドエンドになったりハッピーエンドになったりするあの瞬間です
if文の内容は、randomNumberが5以下ならfor文処理をするようにします。
それ以上の数字の場合は処理をスルーします。
数字が10ならDebugで『当たり』と表示させたいと思います。
以下のコードに内容を修正します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ButtonScript : MonoBehaviour
{
public int randomNumber;
public void OnStartButtonClick(){
RandomSelection();
}
private void RandomSelection(){
randomNumber = Random.Range(0,11);
if(randomNumber <= 5){
for (int i = 1; i <= randomNumber; i++)
{
Debug.Log(i);
}
}
else if (randomNumber == 10){
Debug.Log("当たり");
}
else{
//何もしない場合は何も書かない
}
}
}
コードを修正しなおせたら、ゲームを実行します。
ボタンを押したらランダムに数字が決まる。
数字が1~5ならその数字分for文が実行され1~数字が表示。
10なら【当たり】と表示。
それ以外の数字(6~9)ならなにもされない。
上記の想定通り動いたら無事成功です!
これで何となくコードの書き方が理解できたと思います。
まとめ
いかがでしたでしょうか?
上手く実装させることは出来ましたか?
今回使ったコード内容は、ゲーム開発をするうえで頻繁に使います。
ですので、是非有効に扱えるようになっていただければと思います!
自分も実力的にはまだまだなので、良い書き方がありましたら是非教えてくださいね!
それではまた次回の記事お会いいたしましょう!
お時間あれば、是非下記の記事も読んでいただけると幸いです。