• 大小: 3KB
    文件类型: .cs
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: C#
  • 标签: unity  

资源简介

海底鱼类随机点游动,转向很柔和,比较真实,可以采纳

资源截图

代码片段和文件信息

using UnityEngine;
using System.Collections;

//普通鱼的位移控制脚本

public class fishMove : MonoBehaviour
{


    //鱼当前运动的目标点
    public Vector3 Point;
    public Gameobject player;//  人物
    public float time1 = 2f;
    Rigidbody _rig;
    Animation _animation;

    void Awake()
    {
        Point = new Vector3();
        _rig = GetComponentInChildren();
        _animation = GetComponent();
    }

    void Start()
    {
        //设定动画速度为1.5倍
        if (_animation[“Motion“])
        {
            _animation[“Motion“].speed = 1.5f;
        }


        //开始循环调用 生成随即目标点函数 延迟0秒 每隔4~6秒再次再次调用
        InvokeRepeating(“RandPoint“ 0 Random.Range(4 6));
    }

    // Update is called once per frame
    void Update()
    {
        time1 -= Time.deltaTime;
        MovetoPoint(Point);


    }

    //随机产生目标点
    public void RandPoint()
    {
        //随机范围控制
        Point.x = Random.Range(-700f 700f);
        Point.y = Random.Range(-20f 200f);
        Point.z = Random.Range(-700f 700f);
    }
    //移动函数
    void MovetoPoint(Vector3 Pos)
    {
        //face表示鱼目标朝向,朝向由鱼当前朝向与速度方向差值获得

        Vector3 face = Vector3.MoveTowards(transform.forward + transform.position _rig.velocity + transform.position 0.5f);
        //给鱼一个向目标点的力,为防止鱼转向时位移过大,力的大小要乘上朝向与速度方向的夹角的补角
        _rig.AddForce((Pos - transform.position).normalized * 

评论

共有 条评论