1、模仿群体行为需要下面几种操控行为
分离(Separation):避免个体在局部过于拥挤的操控力
队列(Alignment):朝向附近同伴的平均朝向的操控力
聚集(Cohesion):像附近同伴的平均位置移动的操控力
2、检测附近AI角色
为了实现组行为,首先需要检测位于当前AI角色“邻域”中的其他AI角色,用一个雷达脚本实现:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Radar : MonoBehaviour {
//碰撞体的数组
private Collider[] colliders;
//计时器
private float timer = 0;
//邻居列表
public List<GameObject> neighbors;
//无需每帧进行检测,该变量设置检测的时间间隔
public float checkInterval = 0.3f;
//设置邻域半径
public float detectRadius = 10f;
//设置检测哪一层的游戏对象
public LayerMask layersChecked;
// Use this for initialization
void Start () {
//初始化邻居列表
neighbors = new List<GameObject>();
}
// Update is called once per frame
void Update () {
timer &#