3Dダイス作成
3Dダイスにするのはとても楽しくて、Unityらしい立体演出ができます!
以下に**超初心者でもできる「3Dダイスを転がして出目を決定する方法」**をステップバイステップで説明します。
🎲 目標
サイコロ(3D Cube)をクリックで転がす
停止後の上面の目から出目を判定する
プレイヤーがその数だけ進む
✅ 必要な要素
要素
内容
🎲 3D Cube
サイコロの物理モデル
🎨 サイコロの面ごとのテクスチャ
数字やドットのマテリアル
🧠 ダイス制御スクリプト
ランダムな方向に回して、上の面を判定
📷 カメラ
3D用に少し斜め上から表示
🧭 ステップガイド
✅ ① Unityに3Dダイスを配置する
シーンを3Dに切り替える必要はありません! 2Dプロジェクトでも3Dオブジェクトは使えます。
Hierarchy > Create > 3D Object > Cube を選択(名前は Dice3D)
Add Component > Rigidbody を追加(物理挙動)
Box Collider はそのままでOK
回転時に使うので Interpolate = Interpolate を設定
✅ ② ダイスに数字の面をつける(省略可)
必要であれば各面ごとに違うマテリアル(1〜6の目)を割り当てます。
ここでは省略して、「停止後に上方向を向いている面の法線ベクトル」で出目を判定します。
✅ ③ ダイスを転がすスクリプト// Scripts/Dice3DRoller.cs
using UnityEngine;
public class Dice3DRoller : MonoBehaviour
{
private Rigidbody rb;
private bool hasStopped = false;
public int result = 0;
void Start()
{
rb = GetComponent<Rigidbody>();
Roll(); // 初期ロール
}
public void Roll()
{
hasStopped = false;
result = 0;
transform.position = new Vector3(0, 2, 0);
rb.velocity = Vector3.zero;
rb.angularVelocity = Vector3.zero;
Vector3 randomTorque = new Vector3(
Random.Range(200, 500),
Random.Range(200, 500),
Random.Range(200, 500)
);
rb.AddTorque(randomTorque);
}
void Update()
{
if (!hasStopped && rb.IsSleeping())
{
hasStopped = true;
result = ReadDiceValue();
Debug.Log("🎲 出目は: " + result);
// ここで DiceRoller へ通知してもOK
}
}
int ReadDiceValue()
{
Vector3 up = transform.up;
Vector3 directions = {
Vector3.up, Vector3.down,
Vector3.left, Vector3.right,
Vector3.forward, Vector3.back
};
float maxDot = -1f;
int bestSide = -1;
for (int i = 0; i < directions.Length; i++)
{
float dot = Vector3.Dot(up, directions[i]);
if (dot > maxDot)
{
maxDot = dot;
bestSide = i;
}
}
// bestSide: 0=上(1), 1=下(6), 2=左(4), 3=右(3), 4=前(2), 5=後(5)
int faceValues = { 1, 6, 4, 3, 2, 5 };
return faceValues[bestSide];
}
}
✅ ④ ダイスの転がしトリガー
UI > Button を作成し、「Roll Dice」ボタンに
Dice3DRoller.Roll() を OnClick に設定
✅ ⑤ カメラ調整(少し斜め上から見る)
Main Camera を選択
Position = (0, 5, -5) などに設定
Rotation = (45, 0, 0) にすることで上から斜めに見る
✅ 結果
ボタンを押すと物理的にダイスが転がり
止まると自動的に出目がログに表示される
この result を使ってプレイヤーを移動させればOK!
✨ オプション演出
ダイスに数字やドットのマテリアルを貼る(希望あれば素材提供可)
回転サウンドを追加
落ちないように床を追加(PlaneでOK)
了解しました!
ここでは、ダイスが「1回だけ転がり、止まったら再ロールできる」ように制御する方法を追加で解説します。
🎯 目標
プレイヤーがボタンを押したときだけダイスが回る
ダイスが止まるまで「連打できないように」ボタンをロック
止まったあとに出目を取得し、再びロール可能にする
✅ スクリプト改善:状態制御付き
Dice3DRoller.cs
using UnityEngine;
public class Dice3DRoller : MonoBehaviour
{
private Rigidbody rb;
private bool isRolling = false;
public int result = 0;
public delegate void DiceResultHandler(int value);
public event DiceResultHandler OnDiceStopped; // 外部通知用イベント
void Start()
{
rb = GetComponent<Rigidbody>();
}
public bool CanRoll()
{
return !isRolling;
}
public void Roll()
{
if (isRolling) return;
isRolling = true;
result = 0;
transform.position = new Vector3(0, 2, 0);
transform.rotation = Random.rotation;
rb.velocity = Vector3.zero;
rb.angularVelocity = Vector3.zero;
Vector3 randomTorque = new Vector3(
Random.Range(200, 500),
Random.Range(200, 500),
Random.Range(200, 500)
);
rb.AddTorque(randomTorque);
}
void Update()
{
if (isRolling && rb.IsSleeping())
{
isRolling = false;
result = ReadDiceValue();
Debug.Log("🎲 出目は: " + result);
if (OnDiceStopped != null)
OnDiceStopped.Invoke(result); // 結果通知
}
}
int ReadDiceValue()
{
Vector3 up = transform.up;
Vector3 directions = {
Vector3.up, Vector3.down,
Vector3.left, Vector3.right,
Vector3.forward, Vector3.back
};
float maxDot = -1f;
int bestSide = -1;
for (int i = 0; i < directions.Length; i++)
{
float dot = Vector3.Dot(up, directions[i]);
if (dot > maxDot)
{
maxDot = dot;
bestSide = i;
}
}
int faceValues = { 1, 6, 4, 3, 2, 5 };
return faceValues[bestSide];
}
}
✅ ボタン制御用スクリプト(UI連携)
using UnityEngine;
using UnityEngine.UI;
public class DiceButtonController : MonoBehaviour
{
public Dice3DRoller dice;
public Button rollButton;
void Start()
{
rollButton.onClick.AddListener(OnRollButtonPressed);
dice.OnDiceStopped += OnDiceStopped;
}
void OnRollButtonPressed()
{
if (dice.CanRoll())
{
dice.Roll();
rollButton.interactable = false; // ボタン無効化
}
}
void OnDiceStopped(int value)
{
Debug.Log($"プレイヤーを {value} マス進めます!");
rollButton.interactable = true; // 再度押せるように
}
}
✅ UIセットアップまとめ
オブジェクト
設定内容
🎲 Dice3D
Dice3DRoller.cs をアタッチ
🎯 UI Button
DiceButtonController.cs をアタッチ
🔗 Inspector
rollButton に自分自身(Button)を設定dice に Dice3D をドラッグ
✅ これでどうなる?
ボタンを押すと1回だけダイスが回る
停止まで待ち、出目が表示される
ボタンが再び押せるようになる
出目に応じてプレイヤー移動に使える!
了解しました!
ボタンではなく、3Dのダイス(Dice3D)自体をクリックして回す方法を解説します。
✅ ゴール
3Dオブジェクト Dice3D をクリックするとダイスが回転する
UIボタンは使わない(または非表示)
🛠 必要なもの
Dice3D に Collider があること(Cube なら自動でOK)
カメラが Raycast を通して Dice3D を見える位置にあること
クリック処理を Raycast で検知するスクリプト
✅ スクリプト:DiceClickHandler.cs
// Scripts/DiceClickHandler.cs
using UnityEngine;
public class DiceClickHandler : MonoBehaviour
{
public Dice3DRoller diceRoller;
void Update()
{
if (Input.GetMouseButtonDown(0)) // 左クリック
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out RaycastHit hit))
{
if (hit.collider.gameObject == gameObject && diceRoller.CanRoll())
{
diceRoller.Roll();
}
}
}
}
}
✅ セットアップ手順
Dice3D にこの DiceClickHandler.cs をアタッチ
インスペクターで DiceRoller に同じ Dice3D オブジェクトをドラッグ
UIボタンは削除 or 非表示(任意)
✅ 確認ポイント
確認項目
内容
✅ Dice3D に Box Collider がついているか
必須(ないと Raycast に当たらない)
✅ Main Camera の Projection が Perspective になっているか
3D表示用
✅ Dice3D が画面に見えているか
クリック対象になるために必要
✅ 結果
プレイヤーが ダイスを直接クリックすると回転
出目が表示され、プレイヤー移動に使える
UIなしで直感的なインタラクションが可能!
了解です!
では、3Dダイスの出目に応じてプレイヤーを自動でマスに沿って進ませる処理を実装しましょう!
🎯 ゴール
ダイスをクリック → 出目が決定
プレイヤーがその数だけ進む(すごろく風)
マスは Tile(プレハブ)として並んでおり、Transform の配列で管理されている
✅ 1. PlayerController の準備
以下のようにスクリプトを整理します:
// Scripts/PlayerController.cs
using System.Collections;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public Transform tiles; // ボードのマス
private int currentIndex = 0;
private bool isMoving = false;
public void MoveSteps(int steps)
{
if (isMoving || tiles.Length == 0) return;
StartCoroutine(MoveRoutine(steps));
}
IEnumerator MoveRoutine(int steps)
{
isMoving = true;
while (steps > 0 && currentIndex < tiles.Length - 1)
{
currentIndex++;
Vector3 nextPos = tiles[currentIndex].position;
yield return MoveTo(nextPos);
steps--;
}
isMoving = false;
}
IEnumerator MoveTo(Vector3 target)
{
while ((transform.position - target).sqrMagnitude > 0.01f)
{
transform.position = Vector3.MoveTowards(transform.position, target, Time.deltaTime * 5f);
yield return null;
}
transform.position = target;
}
}
✅ 2. Dice3DRoller で出目通知を使う// Dice3DRoller.cs の Update() に追加済みイベントを活用
if (OnDiceStopped != null)
OnDiceStopped.Invoke(result);
✅ 3. DiceClickHandler で出目をプレイヤーに伝える
// Scripts/DiceClickHandler.cs(追記)
public PlayerController player;
void Start()
{
diceRoller.OnDiceStopped += OnDiceStopped;
}
void OnDiceStopped(int steps)
{
player.MoveSteps(steps);
}
✅ 4. Unity エディタでの接続
Dice3D に以下のスクリプトを追加
Dice3DRoller
DiceClickHandler
DiceClickHandler の diceRoller に自分自身(Dice3D)を指定
DiceClickHandler の player に Player オブジェクトを指定
PlayerController の tiles に、マス(Tile)をすべて設定
※ tiles[] の自動取得化は以前お伝えした通りです(BoardManager の子から読み取る)
✅ 結果
ダイスをクリック → 出目が確定 → プレイヤーがマスに沿って進む!
1つの出目ごとにスムーズなアニメーション付き
簡易バトルシーンに遷移
了解しました!いよいよゲームの核である「トルネコ風ダンジョン」要素に入ります!
⚔️ ステップ④:ダンジョン突入と簡易戦闘
🎯 ゴール
人生ボードで ダンジョンマスに止まったら別シーンへ移動
ダンジョンシーンで簡単なバトルを行う(まずは1対1)
戦闘後にボードへ戻る(次ステップ以降で)
🗂️ 全体の構成
要素
内容
🎲 BoardScene
すごろく+イベント処理
⚔ DungeonScene
簡易バトル用シーン
🧙 プレイヤー
矢印キーで移動(今後自動でもOK)
👾 敵
近づいたら戦闘(今回は固定配置でOK)
✅ 1. シーン追加:DungeonScene
🔧 DungeonScene を作成
Assets/Scenes フォルダを開く
右クリック → Create > Scene → 名前:DungeonScene
開いて、以下を配置:
Player:ボードと同じ見た目の円(位置を (0, 0) に)
Enemy:赤い円や四角など(例:X=2, Y=0)
✅ 2. シーン切り替え用のスクリプト
🎯 プレイヤーが「ダンジョンマス」に止まったらシーンを切り替える
// PlayerController.cs(MoveRoutineの最後)
using UnityEngine.SceneManagement;
// ...
if (currentIndex < tiles.Length)
{
BoardTile tile = tiles[currentIndex].GetComponent<BoardTile>();
switch (tile.tileType)
{
case TileType.Event:
Debug.Log("📢 ランダムイベントが発生!");
break;
case TileType.Shop:
Debug.Log("💰 お店に到着!");
break;
case TileType.Dungeon:
SceneManager.LoadScene("DungeonScene")
Debug.Log("⚔ ダンジョンへ突入!");
SceneManager.LoadScene("DungeonScene");
break;
default:
Debug.Log("🚶 通常マス");
break;
}
}
注意: using UnityEngine.SceneManagement; を忘れずに!
✅ 3. 簡易バトル処理(DungeonScene用)
🎮 プレイヤー操作用スクリプト(左右移動+攻撃)
// Scripts/DungeonPlayer.cs
using UnityEngine;
public class DungeonPlayer : MonoBehaviour
{
public float moveSpeed = 3f;
public GameObject enemy;
void Update()
{
float h = Input.GetAxisRaw("Horizontal");
transform.Translate(Vector3.right * h * moveSpeed * Time.deltaTime);
if (Input.GetKeyDown(KeyCode.Space))
{
if (Vector3.Distance(transform.position, enemy.transform.position) < 1.5f)
{
Debug.Log("🔪 敵に攻撃!");
Destroy(enemy);
}
else
{
Debug.Log("💨 届かない!");
}
}
}
}
🛠 セットアップ手順
Player に DungeonPlayer.cs をアタッチ
Enemy を作成して DungeonPlayer の enemy にドラッグ
✅ 4. シーン間遷移に対応する設定
🎮 シーンを Build に追加
File > Build Settings を開く
Scenes/BoardScene と Scenes/DungeonScene を「Add Open Scenes」で追加
BoardScene が 0
DungeonScene が 1
✅ このステップの完成状態
すごろくで赤マス(ダンジョン)に止まると DungeonScene に切り替わる
簡易マップでプレイヤーが敵に近づき、スペースキーで攻撃して倒せる
ボードマスに種類を割り当てる
🧩 ステップ③:マスの種類とイベント発火
🎯 ゴール
マスごとに種類(イベント/店/ダンジョンなど)を持たせる
止まったマスに応じたイベント処理を実行する
🧱 1. マスに種類(タイプ)を設定する
🔸 マスタイプの定義
まずはマスのタイプを enum で定義します:
// Scripts/TileType.cs
public enum TileType
{
Normal,
Event,
Shop,
Dungeon
}
🧱 マス情報クラスを追加
// Scripts/BoardTile.cs
using UnityEngine;
public class BoardTile : MonoBehaviour
{
public TileType tileType = TileType.Normal;
private SpriteRenderer sr;
void Start()
{
sr = GetComponent<SpriteRenderer>();
UpdateColor();
}
void UpdateColor()
{
switch (tileType)
{
case TileType.Normal: sr.color = Color.white; break;
case TileType.Event: sr.color = Color.yellow; break;
case TileType.Shop: sr.color = Color.green; break;
case TileType.Dungeon: sr.color = Color.red; break;
}
}
}
🔧 Tile プレハブに BoardTile.cs をアタッチしておきましょう
🧠 2. タイルを生成時にランダムタイプで設定
// BoardGenerator.cs の Start() に追記
var tile = Instantiate(tilePrefab, pos, Quaternion.identity);
BoardTile boardTile = tile.GetComponent<BoardTile>();
// ランダムでマスタイプを割り当てる(仮)
float r = Random.value;
if (r < 0.1f) boardTile.tileType = TileType.Event;
else if (r < 0.2f) boardTile.tileType = TileType.Shop;
else if (r < 0.3f) boardTile.tileType = TileType.Dungeon;
else boardTile.tileType = TileType.Normal;
👟 3. プレイヤーが止まったマスのタイプに応じてイベント実行
// PlayerController.cs の MoveRoutine() の最後に追加
if (currentIndex < tiles.Length)
{
BoardTile tile = tiles[currentIndex].GetComponent<BoardTile>();
switch (tile.tileType)
{
case TileType.Event:
Debug.Log("📢 ランダムイベントが発生!");
break;
case TileType.Shop:
Debug.Log("💰 お店に到着!");
break;
case TileType.Dungeon:
Debug.Log("⚔ ダンジョンへ突入!");
break;
default:
Debug.Log("🚶 通常マス");
break;
}
}
✅ このステップの完成状態
各マスにタイプ(色つき)がつく
サイコロで止まるとそのマスのイベント内容がログに表示される
プレイヤーの進行に意味が出てきて楽しくなってくる!
▶️ 次のステップ④:ダンジョン突入と簡易戦闘
次回は、**ダンジョンマスに止まった時、別シーンに切り替えて「トルネコ風ローグライクなバトルフィールド」**に入る仕組みを実装します!
ダンジョンシーンの作成
プレイヤーと敵の簡易マップ配置
ターン制の1vs1バトル(最初はボタンで攻撃)
すごろくボードを作る
了解しました!では次のステップ「② 人生ボードマップとプレイヤー移動」に入ります。
🧭 ステップ②:人生ボードマップとプレイヤー移動
🎯 ゴール
すごろくボードを作る(簡易なマスでOK)
プレイヤーキャラを置く
サイコロで出た目の数だけマスを進む
マス上を1マスずつ移動(ターン制っぽく)
🔧 1. ボードマップ(すごろくマス)の作成
🎨 マス画像の準備
シンプルな白背景に黒枠のマス画像(32×32または64×64)を自作しても良いですし、下記の方法で Unity 内で代用可能です。
■ Unity 内でマスを表現する方法(Tilemap未使用)
GameObject > UI > Image ではなく、
GameObject > 2D Object > Sprite > Square を選択
名前を Tile に変更
Scale を (1, 1, 1) に設定
Tile をプレハブ化(Prefabs フォルダにドラッグ)
🧱 複数マスを並べてすごろくボードを構築
// Scripts/BoardGenerator.cs
using UnityEngine;
public class BoardGenerator : MonoBehaviour
{
public GameObject tilePrefab;
public int tileCount = 20;
public float tileSpacing = 1.2f;
void Start()
{
for (int i = 0; i < tileCount; i++)
{
Vector3 pos = new Vector3(i * tileSpacing, 0, 0);
Instantiate(tilePrefab, pos, Quaternion.identity);
}
}
}
空の GameObject を作成 → BoardManager と命名
BoardGenerator スクリプトをアタッチ
tilePrefab に先ほど作った Tile プレハブを設定
これでマスが横一列に並びます。
👤 2. プレイヤーキャラの設置と移動
🧍 キャラを準備
GameObject > 2D Object > Sprite > Circle を選択(仮のキャラ)
名前を Player に変更
色を変えて見やすくしておく
最初のマス(x=0)に移動 (0, 0, 0)
PlayerController.cs を作成して以下を記述:
// Scripts/PlayerController.cs
using System.Collections;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public Transform tiles; // 進行先マス
private int currentIndex = 0;
public void MoveSteps(int steps)
{
StartCoroutine(MoveRoutine(steps));
}
IEnumerator MoveRoutine(int steps)
{
while (steps > 0 && currentIndex < tiles.Length - 1)
{
currentIndex++;
Vector3 nextPos = tiles[currentIndex].position;
yield return MoveTo(nextPos);
steps--;
}
}
IEnumerator MoveTo(Vector3 target)
{
while ((transform.position - target).sqrMagnitude > 0.01f)
{
transform.position = Vector3.MoveTowards(transform.position, target, Time.deltaTime * 5f);
yield return null;
}
transform.position = target;
}
}
🎲 3. サイコロボタンを用意
UI > Button を追加
Text を「サイコロ」と変更
DiceRoller.cs を作成:
// Scripts/DiceRoller.cs
using UnityEngine;
using UnityEngine.UI;
public class DiceRoller : MonoBehaviour
{
public PlayerController player;
public Transform tiles;
public Text logText;
public void RollDice()
{
int steps = Random.Range(1, 7); // 1〜6
logText.text = $"🎲 {steps}マス進む!";
player.tiles = tiles;
player.MoveSteps(steps);
}
}
DiceRoller を空オブジェクトにアタッチ
tiles にマス(Tile)を順にドラッグして並べる
ボタンの OnClick() に DiceRoller の RollDice を設定
✅ このステップの完成状態
マスが20個ほど並んだボードがある
キャラがスタート位置にいて、ボタンでサイコロを振ると1マスずつ前進する
ログが表示されて目の数がわかる
人生ゲームとトルネコの大冒険を組み合わせたゲームをUnity2Dで作りたい。ゲームシステムを考えてください
面白いアイデアですね!「人生ゲーム × トルネコの大冒険」は、「ボードゲーム的な進行+成長要素」と「ローグライク風の探索・戦闘」を融合させた新感覚ゲームになりそうです。以下に、Unity 2Dで実装しやすく、かつゲームとしても魅力的なシステム案を提案します。
🎮 ゲームタイトル案
『トルネコ人生劇場』
🧩 ゲーム概要
プレイヤーは「人生ボード」を進んでいくが、マスによって「ダンジョン探索」に突入する。
ボードマップとダンジョンマップを行き来しながら、職業/イベント/お金/装備/成長が絡み合う。
最終的に「老後」や「伝説の商人」などのエンディング分岐が存在する。
🔁 ゲームの流れ(ループ構造)
すごろくパート(人生ボード)
サイコロで進む。
イベントマス、ダンジョンマス、店マス、就職/転職マスなどがある。
アイテムや資金、ステータスを獲得。
ダンジョンパート(トルネコ風)
ローグライクな階層マップ。
モンスターと戦闘、アイテム収集、宝箱、罠。
死んでも人生ボードには戻れるが、アイテム一部ロスト。
成長・資産管理パート
レベルアップやスキル習得。
家、店、株などを買って資産運用。
⚙ 主なシステム構成
1. 人生ボード(すごろく)
タイル型マップ上を1マスずつ進行
マス種類:
🌟 イベント:ミニゲームや人生イベント(結婚・離婚など)
⚔ ダンジョン:トルネコ風のダンジョン探索に突入
🏪 店:アイテム購入や売却
🧑🔧 職業:転職、給料、スキル解放
🏠 家:資産購入、収入発生
2. ダンジョン(トルネコ風)
ランダム生成(部屋+通路)
ターン制、視界制限(FOV)
戦闘は通常攻撃、スキル、アイテムの選択式
装備・アイテム取得&持ち帰り
3. ステータスと成長
STR / DEX / INT などRPG風ステータス
職業によって伸びやすさが変化
経験値でレベルアップ、スキルツリー解放
4. 人生イベントとエンディング
特定の条件を満たすと「分岐イベント」が発生
最終年齢に到達すると「人生の評価」によってマルチエンディング
🧱 実装ステップ(Unity 2D)
フェーズ
内容
Phase 1
人生ボードとすごろく移動の実装(マスの種類)
Phase 2
ダンジョンマップの生成+バトル(簡易AI)
Phase 3
ステータス・経験値・装備の管理
Phase 4
職業・転職・スキルツリー
Phase 5
イベントマス・人生分岐・エンディング
💡 面白くする工夫
🔄 ダンジョンのクリア報酬が「人生」に強く影響(転職先・資産・結婚相手)
🎭 イベントに「選択肢」を入れてマルチルート
🧑🤝🧑 複数プレイヤー対応(ローカルor オンライン
了解しました!
ここからは「人生ゲーム × トルネコの大冒険」をUnity 2Dで初心者でも作れるように段階を踏んで解説していきます。
まずは全体像と進行プランを紹介し、その後、ひとつずつ制作ステップに入ります。
🗺️ ゲーム開発ステップロードマップ(全体像)
ステップ
内容
ゴール
①
プロジェクトの作成と初期設定
Unity 2D環境を整える
②
人生ボードマップとプレイヤー移動
すごろく風マップを歩けるようにする
③
マスの種類とイベント発火
止まったマスに応じたイベント処理
④
ダンジョン突入と簡易戦闘
トルネコ風の小さな探索バトル導入
⑤
装備・アイテム・経験値の管理
RPGらしい成長システム追加
⑥
人生パートの拡張(転職・結婚など)
進行に深みを持たせる
⑦
マルチエンディング&セーブ機能
遊び切れる完成品に近づける
🎯 今回のステップ:① プロジェクトの作成と初期設定
✅ ゴール
Unityプロジェクトを作成
2Dモード設定
必要なフォルダを整理
最初の「人生ボードシーン」を作成
🔧 1. Unityプロジェクトの作成
Unity Hub を開く
「新しいプロジェクト」→ テンプレートは「2D Core」を選択
プロジェクト名:「TorunekoJinsei」
保存場所を選び、「作成」
📁 2. フォルダ構成の準備
Assets フォルダ内に以下のフォルダを作成してください:
Assets/
├── Scenes/ ← シーンファイル
├── Scripts/ ← C#スクリプト
├── Sprites/ ← 画像素材(マップチップなど)
├── Prefabs/ ← プレハブ(キャラやマス)
├── Audio/ ← BGMや効果音
├── Resources/ ← スクリプトから読み込む素材
🎬 3. 最初のシーン作成
Scenes フォルダを開き、右クリック → Create > Scene → 名前:BoardScene
BoardScene をダブルクリックして開く
🌍 4. カメラとCanvasの設定
Main Camera を選択
Background を「白」または「淡い色」に変更
Projection は Orthographic
Size は 5(後で調整可)
✅ 完了後の確認ポイント
チェック項目
内容
✅ プロジェクトが2Dになっているか
シーンに入るとGrid風の背景
✅ 必要なフォルダがあるか
Scenes / Scripts / Sprites など
✅ 最初のシーンが作られているか
BoardScene がある
▶️ 次ステップ:② 人生ボードマップとプレイヤー移動
次回は以下の内容に入ります:
すごろくボードを作る(タイル or 単純なマス)
プレイヤーのコマ(キャラ)を配置
サイコロでランダム移動
マスに止まるたびにログ表示