(Unity)ロボットを箱庭の中でランダムに移動させる(Raycast,Rabdomの活用)

(スクリプト)

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

public class AutoRobot : MonoBehaviour
{
    private float maxDistance = 0.5f;

    void Update()
    {
        transform.Translate(Vector3.forward * 2 * Time.deltaTime);

        RaycastHit hit;
        Ray ray = new Ray(transform.position, transform.forward);

        Debug.DrawRay(transform.position, transform.forward * 1f, Color.green);

        if(Physics.Raycast(ray, out hit, maxDistance))
        {
            transform.localRotation  = Quaternion.Euler(0, Random.Range(0,360), 0);
        }
    }
}

(エリアオーバーさせない工夫)


(実行結果)

  • 多数のロボットが箱庭内をランダムにうごきまわれば成功です。