Unity群组行为

群组行为说的是一群人,或物执行一样的东西,比如说走路,但是不能很规律的执行,有人工智能的感觉的去执行走路,更加真实的去模拟现实,变得更加符合实际情况。

这里我就模拟了一下群组走路的一个情况,为了避免有的小伙伴的密集恐惧症,这里我就不上效果图了,大家自行看脚本,编写一下试试看吧,下面先贴出完整脚本: 


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

public class AIGroupMath : MonoBehaviour {

    //质量
    public float m = 1f;
    //加速度
    public Vector3 velocity = Vector3.zero;
    
    //函数调用间隔
    public float time = 0.2f;

    //运动速度
    public float speed = .1f;
    //目标点
    public Transform target;
    //前进方向
    public Vector3 sumDir = Vector3.zero;

    //分离范围
    public float separationScop = 1.5f;
    //分离方向
    public Vector3 separationDir = Vector3.zero;
    //分离范围内的所有成员
    public Collider[] separationNeghbar;
    //分离比重
    public float separetionWeigth = 1f;

    //聚合范围
    public float cohisionScop = 6f;
    //聚合方向
    public Vector3 cohisionDir = Vector3.zero;
    //聚合范围内的所有成员
    public Collider[] cohisionNeghbar;
    //聚合比重
    public float cohisionWeigth = 1f;

    //队列范围
    public float alignmentScop = 3f;
    //队列范围内的成员
    public Collider[] alignmentNeghbar;
    //队列方向
    public Vector3 alignmentDir = Vector3.zero;
    //队列比重
    public float alignmentWeigth = 1f;
    //队列成员方向和
    public Vector3 alignmentsDir = Vector3.zero;

    private void Start()
    {
        target = GameObject.Find("Target").transform;
        InvokeRepeating("GetSumDir", 0, time);
    }


    /// <summary>
    /// 得到一个总的方向
    /// </summary>
    public void GetSumD
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值