ユニティーを使用して作成したじゃんけんゲームの作り方のメモです。ゲーム制作の参考にしていただければ嬉しいです。トグルボタンをクリックすると記事が表示されます。小さくて見ずらい画像はクリックで拡大できます。
じゃんけんゲームについて
じゃんけんは、手を使った遊びで、基本的には二人で対戦します。
手の形:
- グー(rock):拳を握った形
- チョキ(scissors):人差し指と中指を立てて、他の指を握った形
- パー(paper):平らな手のひら
勝敗の決定:
- グーはチョキに勝つ。
- チョキはパーに勝つ。
- パーはグーに勝つ。
引き分け:
- 同じ手を出した場合は引き分けとなり、再度じゃんけんを行います。
勝敗:
- 勝った方がそのまま勝者となり、負けた方が敗者となります。
UIの配置
じゃんけんのグー、チョキ、パーのボタンを配置します。
UI→Buttonを作成ました。

UIの設定を変更しました。
RenderModeをScreenSpace-Cameraに変更しました。
RenderカメラにMainCameraをアタッチしました。
UIScaleModeをScaleWithScreenSizeに変更しました。
ReferenceResolutionを画面サイズに変更しました。

勝敗を表示するテキストを配置しました。

位置とサイズを調整しました。

UI→ボタンを配置しました。名前はResetButtonにしました。
位置とサイズを変更しました。

空のオブジェクトを作成しました。名前はEnemyにしました。

inspector画面のaddConponentからSpriteRendererをアタッチしました。
Spriteを設定して位置を調整しました。

調整が完了したら、SpriteをNoneにしておきます。
スクリプト
新しくC#スクリプトを作成しました。名前はEnemyManagerにしました。
ランダムで敵の手を決めてそれに合う画像を表示するようにします。
作成したスクリプトをEnemyにアタッチしました。
using UnityEngine;
public class EnemyManager : MonoBehaviour
{
//敵が出した手を格納する
public int enemyHand;
//GameObjectのspriterendererを格納する
private SpriteRenderer spriteRenderer;
//グー、チョキ、パーのSpriteを格納する
public Sprite[] sprites;
void Start()
{
spriteRenderer= GetComponent<SpriteRenderer>();
//ランダムで敵の手を決める
enemyHand = UnityEngine.Random.Range(0, 3);
}
public void Judge()
{
//条件分岐で画像を表示する
switch (enemyHand)
{
case 0:
spriteRenderer.sprite = sprites[0];
break;
case 1:
spriteRenderer.sprite = sprites[1];
break;
case 2:
spriteRenderer.sprite = sprites[2];
break;
}
}
}
inspector画面からSpritesを設定しました。

Start関数などでjudgeを呼び出すとランダムで敵の手の画像が表示されるようになります。

新しくC#スクリプトを作成しました。名前はGameManagerにしました。
各ボタンの関数を作成します。
作成したスクリプトを空のオブジェクトにアタッチしました。

using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;
public class GameManager : MonoBehaviour
{
public EnemyManager enemyManager;
public Text judgeText;
public void GuButton()
{
enemyManager.Judge();
if (enemyManager.enemyHand == 0)
{
judgeText.text = "あいこ";
}
if (enemyManager.enemyHand == 1)
{
judgeText.text = "かち";
}
if (enemyManager.enemyHand == 3)
{
judgeText.text = "まけ";
}
}
public void ChokiButton()
{
enemyManager.Judge();
if (enemyManager.enemyHand == 0)
{
judgeText.text = "まけ";
}
if (enemyManager.enemyHand == 1)
{
judgeText.text = "あいこ";
}
if (enemyManager.enemyHand == 3)
{
judgeText.text = "かち";
}
}
public void PaButton()
{
enemyManager.Judge();
if (enemyManager.enemyHand == 0)
{
judgeText.text = "かち";
}
if (enemyManager.enemyHand == 1)
{
judgeText.text = "まけ";
}
if (enemyManager.enemyHand == 3)
{
judgeText.text = "あいこ";
}
}
public void ResetButton()
{
SceneManager.LoadScene("SampleScene");
}
}
GameManagerのinspector画面からEnemyManagerとJudgeTextの設定をしました。

inspector画面から各ボタンの設定をしました。
