unity 捕鱼达人鱼群的移动

今天在做东西的时候,有个需求就是要做一群鱼在一定的范围内进行移动。当时候看到这个懵逼的,后来想想如果想让鱼在一定的范围内进行移动首先进行确定移动的范围,然后鱼在这个范围内应该游到哪里,然后怎样再加一些角度偏转什么的。我做的比较简单。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MoveToPos : MonoBehaviour {

public Vector3 target; //鱼在范围内进行移动的点
public float speed = 2; //移动的速度
public float angleSpeed = 0.01f; //鱼旋转的速度  因为面向目标点
public bool isRotate = true;//是否旋转到面向目标点
private void Start()
{
//为鱼随机产生一个目标
    SetTarget();
}
private void Update()
{
 //转向
    if (isRotate)
    {
        Vector3 vec = (target - transform.position);
        Quaternion rotate = Quaternion.LookRotation(vec);
        transform.localRotation = Quaternion.Slerp(transform.localRotation, rotate, angleSpeed);
        if (Vector3.Angle(vec, transform.forward) < 0.1f)
        {
            isRotate = false;
        }
    }
    Move();
}
void SetTarget()
{
//这里的x,y,z是对鱼在某个范围的限定  可以根
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值