スポンサーリンク
スポンサーリンク
UnityUnityメモ

Unity指定したオブジェクトの周りをランダムで移動させる方法

Unity

はじめに

Unityでゲームを開発する際、オブジェクトの動きを制御することは、ゲームを面白く、または予測不能にするための重要な要素です。今回は、特にCubeを中心にSphereがランダムに位置を変える方法について、初心者の方にも理解しやすいように解説します。

Unityプロジェクトの準備

まずは、Unityプロジェクトを新規作成しましょう。Unityを開き、「New Project」を選択し、プロジェクト名を入力します。今回は3Dプロジェクトを選びますが、特別な設定は必要ありません。

プロジェクトが開いたら、メイン画面に慣れるために少し時間を使ってみましょう。

基本オブジェクトの追加

Unityのシーンに、まずは基本となるオブジェクトを追加します。Hierarchyウィンドウで右クリックし、「3D Object」から「Cube」を選択します。次に、同じ方法で「Sphere」を追加します。これらが、今回使用するオブジェクトです。

Sphereの移動スクリプト

Sphereをランダムに動かすために、少しプログラミングが必要です。Sphereを選択し、Inspectorウィンドウで「Add Component」をクリックし、「New Script」と名付けて作成します。スクリプトを開いて、以下のコードを入力してみましょう。

スクリプトの概要:

  • このスクリプトは、指定されたターゲット(target)の周りで、オブジェクト(この場合はゲームオブジェクトにアタッチされたもの)をランダムに動かします。
  • オブジェクトはX軸とZ軸に沿ってランダムな位置に移動し、Y軸は変わりません(地面に対して平行に動く)。

コード内容:

  1. 変数の定義:
    • randomX, randomZ: オブジェクトが移動するランダムなX軸とZ軸の値。
    • target: ターゲットオブジェクトのTransform(位置、回転、スケールを含む)。
    • offset: ターゲットからの相対的な位置。
  1. Start関数:
    • StartCoroutine("RandomMove"): ゲーム開始時にRandomMoveコルーチンを開始します。
  1. 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画面からターゲットを設定します。

Unityエディタの再生ボタンを押して、アニメーションを確認しましょう。SphereがCubeを中心にしてランダムに動き回るのを見ることができるはずです。

まとめ

Unityは初心者にも優しいツールであり、基本的な知識があれば簡単にアニメーションやゲームを作ることができます。今回の記事では、基本的なオブジェクトの追加や簡単なスクリプトを用いて、ランダムに移動するオブジェクトを作成しました。ぜひ、この経験を生かして、自分のプロジェクトに取り入れてみてください。

スポンサーリンク
C-BA memo
タイトルとURLをコピーしました