なぜ必要なのか
ゲームの物体は共通の機能を異なる形で組み合わせます。物体ごとの大きなスクリプトでは、同じ責任が重複します。
どう解決するのか
図にはプレイヤー・床・カメラ・収集アイテム1つがあります。アイテムへ移動で独自の接触処理が動き、得点は0から1になりアイテムが消えます。再接触しても加点されません。移動前に接触を無効にすると収集に失敗し、得点は0のままです。リセット・再読み込みで元に戻ります。実際のエンジンではなく概念シミュレーションです。
概念シミュレーション
Unity
プレイヤーをアイテムへ移動します。独自の接触処理が1点を与えて削除します。
得点: 0 · 収集アイテム: 存在
初期シーン:GameObject 4個
プレイヤー · 床 · カメラ · 収集アイテム
Transform
Renderer:表示
Collider:接触
Script:1回だけ加点
本文内の架空のデモです。リセット・再読み込みで初期状態に戻ります。
どんな考え方なのか
UnityのGameObjectはコンポーネントを保持します。Transform・描画・衝突・独自スクリプトが役割を分担し、名前だけではゲーム動作は生まれません。
得点の管理責任を明確にし、参照を検証します。
この選択を話し合う
コメントは全言語で共有。投稿にはGitHubログインが必要です。