Unity 2Dオブジェクトを自動的にランダムに移動させる。その①

何度か思い出したくなるので、

メモ帳代わりに記事として残しておきます。

こんな感じに↑↑動くぞ

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    public GameObject player;  //①動かしたいオブジェクトをインスペクターから入れる。
    public int speed = 5;  //オブジェクトが自動で動くスピード調整
    Vector3 movePosition;  //②オブジェクトの目的地を保存

    void Start()
    {
    movePosition = moveRandomPosition();  //②実行時、オブジェクトの目的地を設定
    }

    void Update()
    {
        if(movePosition == player.transform.position)  //②playerオブジェクトが目的地に到達すると、
        {
        movePosition = moveRandomPosition();  //②目的地を再設定
        }
    this.player.transform.position = Vector3.MoveTowards(player.transform.position, movePosition, speed *     Time.deltaTime);  //①②playerオブジェクトが, 目的地に移動, 移動速度
    }

    private Vector3 moveRandomPosition()  // 目的地を生成、xとyのポジションをランダムに値を取得 
    {
    Vector3 randomPosi = new Vector3(Random.Range(-7, 7), Random.Range(-4, 4), 5);
    return randomPosi;
    }
}

①『プロジェクト』内で ⇒ 右クリック ⇒ 作成 ⇒ C#スクリプト ⇒ 名前を Playerに設定してから、Playerスクリプトをダブルクリック、上記のコードをコピペで張り付ける。

②『ヒエラルキー』内で ⇒ 右クリック ⇒ 3Dオブジェクト ⇒ キューブを作成(移動させたいオブジェクトを作成)

③『プロジェクト』内から、①で作成したPlayerスクリプトをドラッグして、②で作成したキューブにアタッチ(ヒエラルキー内にあるキューブに乗せる)してください。

④後は、『ヒエラルキー』にある②で作成したキューブをクリック(指定)してから、『ヒエラルキー』のキューブをドラッグして、『インスペクター』内にあるPlayer(スクリプト)の中のプレイヤーの場所に置く。

⑤後は、真ん中上の再生ボタンを押すと、オブジェクトが自動的に動くぞっ!

※ちなみに『インスペクター』内にあるPlayer(スクリプト)の中の速度を変えると、速くなったり遅くなったりできるぞ。

めちゃめちゃ汚いコードかもしれません、すいません、本当すいません。

あくまで自分のために残しておきたいコードという事をご了承ください、すいません。

メモ帳代わりに記入しているだけなのでお手柔らかに。

「こういう書き方すると良いんだけどな~」と言う方はコメントによろしくお願いします!



スポンサーリンク



スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする