Unity3D人工智能AI-随机徘徊
发表于2018-09-05
随机徘徊,其核心就是随机,根据算法随机行动。上一篇给大家介绍了靠近功能,这篇就来介绍下人工智能AI开发中的随机徘徊功能实现。
using UnityEngine; using System.Collections; //pay attention that this function is quite related with frame rate public class SteeringForWander : Steering { public float wanderRadius; public float wanderDistance; public float wanderJitter; public bool isPlanar; //public GameObject targetIndicator; private Vector3 desiredVelocity; private Vehicle m_vehicle; private float maxSpeed; private Vector3 circleTarget; private Vector3 wanderTarget; void Start () { m_vehicle = GetComponent<Vehicle>(); maxSpeed = m_vehicle.maxSpeed; isPlanar = m_vehicle.isPlanar; circleTarget = new Vector3(wanderRadius*0.707f, 0, wanderRadius * 0.707f); } public override Vector3 Force() { Vector3 randomDisplacement = new Vector3((Random.value-0.5f)*2*wanderJitter, (Random.value-0.5f)*2*wanderJitter,(Random.value-0.5f)*2*wanderJitter); if (isPlanar) randomDisplacement.y = 0; circleTarget += randomDisplacement; circleTarget = wanderRadius * circleTarget.normalized; wanderTarget = m_vehicle.velocity.normalized * wanderDistance + circleTarget + transform.position; desiredVelocity = (wanderTarget - transform.position).normalized * maxSpeed; return (desiredVelocity - m_vehicle.velocity); } }
来自:https://blog.csdn.net/u013108312/article/details/52892459