はじめに
Unityでゲームを開発する際、オブジェクトの動きを制御することは、ゲームを面白く、または予測不能にするための重要な要素です。今回は、特にCubeを中心にSphereがランダムに位置を変える方法について、初心者の方にも理解しやすいように解説します。
Unityプロジェクトの準備
まずは、Unityプロジェクトを新規作成しましょう。Unityを開き、「New Project」を選択し、プロジェクト名を入力します。今回は3Dプロジェクトを選びますが、特別な設定は必要ありません。
![](https://cbagames.jp/wp-content/uploads/2024/01/2024-01-27_184016.png)
プロジェクトが開いたら、メイン画面に慣れるために少し時間を使ってみましょう。
基本オブジェクトの追加
Unityのシーンに、まずは基本となるオブジェクトを追加します。Hierarchyウィンドウで右クリックし、「3D Object」から「Cube」を選択します。次に、同じ方法で「Sphere」を追加します。これらが、今回使用するオブジェクトです。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-01_201107.png)
Sphereの移動スクリプト
Sphereをランダムに動かすために、少しプログラミングが必要です。Sphereを選択し、Inspectorウィンドウで「Add Component」をクリックし、「New Script」と名付けて作成します。スクリプトを開いて、以下のコードを入力してみましょう。
スクリプトの概要:
- このスクリプトは、指定されたターゲット(target)の周りで、オブジェクト(この場合はゲームオブジェクトにアタッチされたもの)をランダムに動かします。
- オブジェクトはX軸とZ軸に沿ってランダムな位置に移動し、Y軸は変わりません(地面に対して平行に動く)。
コード内容:
- 変数の定義:
randomX
,randomZ
: オブジェクトが移動するランダムなX軸とZ軸の値。target
: ターゲットオブジェクトのTransform(位置、回転、スケールを含む)。offset
: ターゲットからの相対的な位置。
- Start関数:
StartCoroutine("RandomMove")
: ゲーム開始時にRandomMove
コルーチンを開始します。
- RandomMoveコルーチン:
while (true)
: 無限ループで、ゲームが動いている間ずっと繰り返します。Random.Range(-2,2)
: X軸とZ軸にランダムな値を生成します(-2から2の範囲)。offset = new Vector3(randomX, 0, randomZ)
: ターゲットからの新しい相対位置を設定します。this.transform.position = target.position + offset
: オブジェクトの位置を、ターゲットの位置にオフセットを加えた位置に設定します。yield return new WaitForSeconds(1.0f)
: 1秒待機してから次のランダム移動を行います。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RandomMovement : MonoBehaviour
{
private float randomX;
private float randomZ;
public Transform target;
public Vector3 offset;
void Start()
{
StartCoroutine("RandomMove");
}
IEnumerator RandomMove()
{
while (true)
{
randomX = Random.Range(-2, 2);
randomZ = Random.Range(-2, 2);
offset = new Vector3(randomX, 0, randomZ);
this.transform.position = target.position + offset;
yield return new WaitForSeconds(1.0f);
}
}
}
アニメーションの確認
Sphireにスクリプトを追加したら、inspector画面からターゲットを設定します。
![](https://cbagames.jp/wp-content/uploads/2024/02/2024-02-01_202616.png)
Unityエディタの再生ボタンを押して、アニメーションを確認しましょう。SphereがCubeを中心にしてランダムに動き回るのを見ることができるはずです。
まとめ
Unityは初心者にも優しいツールであり、基本的な知識があれば簡単にアニメーションやゲームを作ることができます。今回の記事では、基本的なオブジェクトの追加や簡単なスクリプトを用いて、ランダムに移動するオブジェクトを作成しました。ぜひ、この経験を生かして、自分のプロジェクトに取り入れてみてください。