Botの作成&自動で移動する仕組みの実装





Botを自動で移動させる
using UnityEngine;
public class BotMove : MonoBehaviour
{
public float moveSpeed;
private float maxDis = 0.75f;
private string tagName;
void Update()
{
// 前進
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
RaycastHit hit;
Ray ray = new Ray(transform.position, transform.forward);
Debug.DrawRay(transform.position, transform.forward * maxDis, Color.red);
if (Physics.Raycast(ray, out hit, maxDis))
{
GameObject target = hit.collider.gameObject;
tagName = target.tag;
if (tagName == "Right")
{
// 右折
transform.localRotation = Quaternion.Euler(0, transform.eulerAngles.y + 90, 0);
}
else if (tagName == "Left")
{
// 左折
transform.localRotation = Quaternion.Euler(0, transform.eulerAngles.y + 270, 0);
}
}
}
}




【Unity6版】TowerDX(全 回)
他のコースを見る




Botを自動で移動させる
using UnityEngine;
public class BotMove : MonoBehaviour
{
public float moveSpeed;
private float maxDis = 0.75f;
private string tagName;
void Update()
{
// 前進
transform.Translate(Vector3.forward * moveSpeed * Time.deltaTime);
RaycastHit hit;
Ray ray = new Ray(transform.position, transform.forward);
Debug.DrawRay(transform.position, transform.forward * maxDis, Color.red);
if (Physics.Raycast(ray, out hit, maxDis))
{
GameObject target = hit.collider.gameObject;
tagName = target.tag;
if (tagName == "Right")
{
// 右折
transform.localRotation = Quaternion.Euler(0, transform.eulerAngles.y + 90, 0);
}
else if (tagName == "Left")
{
// 左折
transform.localRotation = Quaternion.Euler(0, transform.eulerAngles.y + 270, 0);
}
}
}
}




Botの作成&自動で移動する仕組みの実装