您的位置:首页 > 移动开发 > Unity3D

06 Unity3D人工智能AI-随机徘徊

2016-10-22 15:15 1031 查看
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: