今回は、Untiyの2Dゲームでサイコロを実装してみます。
平面の画像を使い、動いてる風にする感じですね。
はじめに
Unityのバージョンは2021.3.3f1です。
まずはサイコロの画像を簡単に作成、下記の様な感じに6面を作成します。

1~6を順番に動かすと下記の様な感じに。画像は自分で作成しなくてもフリーのものでも問題ないです。

実装開始
Unity側に作成した画像を全て取り込み。

PPU、FilterModeなどを変更しておきます。この辺は画像に合わせて変更ですね。私の場合はドット絵で作成しているので下記の様な設定に。

ヒエラルキーメニューにサイコロの1の画像を追加。

UI→Buttonを追加。

位置、テキストを調整して下記の様な感じにします。
「START」ボタンを押したら画像がランダムに変化、何回か変化したら止まり数値を確定させます。

スクリプトを作成
下記スクリプトを作成。
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class DiceRoll : MonoBehaviour { [SerializeField] private Sprite[] _diceSprite; [SerializeField] private Button _btn; private SpriteRenderer _rend; private int _diceRollCount = 10; private int _spriteNum = 0; void Start() { _rend = GetComponent<SpriteRenderer>(); } public void RollingDice() { StartCoroutine("LoadDice"); } private IEnumerator LoadDice() { _btn.interactable = false; for (int i = 0; i <= _diceRollCount; i++) { _spriteNum = Random.Range(0, _diceSprite.Length); _rend.sprite = _diceSprite[_spriteNum]; yield return new WaitForSeconds(0.1f); } Debug.Log(_spriteNum + 1); _btn.interactable = true; } }
コルーチンでスプライトの画像を指定回数変化、debuglogでサイコロの目を出力しています。
サイコロの画像をパラメータの配列に全て入れます。

後はボタンクリックで動作するようにすれば完成。

実行すると下記の様な感じになります。

画像の切り替え速度、変更回数は適当に変えても良いですね。