public class fishGame : MonoBehaviour {

enum FishDir //设置朝向的枚举
{
left,
right
}
FishDir dir; //申明一个方向控制鱼
Vector3 target; //申明目标变量
public float speed = 2; //设置鱼的速度

// Use this for initialization
void Start () {
float random = Random.value; //随机设置鱼的方向
while (random==0.5f) //循环判断random直到整个数字不等于0.5
{
random = Random.value;
}
if (random>0.5f) //如果随机数大于0.5的情况和小于的情况
{
dir = FishDir.left;
}
else
{
dir = FishDir.right;
}
ChangeDir(); //调用改变方向的方法
SetTarget(); //调用设置目标的方法
}

// Update is called once per frame
void Update () {
Move();
}

void ChangeDir()
{
Vector3 scale = transform.localScale; //设置scale变量
if (dir == FishDir.left) //判断如果鱼儿的方向朝左时设置鱼儿的scale=1
{
scale.x = 1;
}
else
{
scale.x = -1;
}
transform.localScale = scale; //重新赋值
}

void SetTarget() //设置目标的方法
{
float x = dir == FishDir.left ? -0.2f : 1.2f; //使用判断左右的方法为x的值赋值0或者1;
Vector3 viewPoint = new Vector3(x, Random.value,-Camera.main.transform.position.z); //生成一个点的位置坐标信息 不过他的这些信息只调用一次
target = Camera.main.ViewportToWorldPoint(viewPoint); //在世界坐标系中去实例化一个目标点
}

void Move() //设置移动的方法
{
transform.position = Vector3.MoveTowards(transform.position, target, speed * Time.deltaTime);
if (Vector3.Distance(transform.position, target) == 0) //判断鱼是否到达边界位置
{
dir = dir == FishDir.left ? FishDir.right : FishDir.left; //控制鱼取得相反的方向
ChangeDir();
SetTarget();
}
}
}

转载于:https://www.cnblogs.com/ylllove/p/7337723.html

《Unity3D-鱼的方向 鱼的游动 控制代码》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. 谈谈Promise的前世今生
  2. Lock“锁定”语句(C# 参考)
  3. linux如何停用xdmcp服务,如何禁用XDMCP服务
  4. 色差仪软件的安装和电池充电
  5. python读取文件时提示“UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 1264: illegal multi
  6. html5监听动画结束,css3动画是否结束监听事件
  7. 等级保护第三级安全扩展要求笔记(2019)
  8. 选拔人才的原则和误区
  9. 关于iReport中纸张的大小 换算
  10. 如何为word增加页码,且第一页不显示页码?
  11. 西门子S7-1200使用PN口总线控制V90伺服
  12. java生成二维码技术实现
  13. 三星a5100多少钱_请问三星A5100现在啥价格?
  14. matlab 将矩阵中的NAN替换为0
  15. Golang爬虫框架 colly 简介
  16. Pyecharts可视化分析图表
  17. U盘重装系统,踩了很多坑后的总结
  18. wpspbc按钮是什么意思_意外:我不小心按下了路由器上的wps按钮?我该怎么办?...
  19. angelica 下载_angelica
  20. 参照《自己动手做CPU》自己动手做CPU

热门文章

  1. 为什么被水弄湿的纸干了后会变皱?
  2. java递归查询分类及分类下所有子分类
  3. Neo4j构建目标知识图谱
  4. 2021.07.22禾赛提前批一面面经
  5. 40岁男人娶20岁女孩
  6. PhysX官方手册翻译(Dynamics)
  7. 高校研究生在微博留下绝笔后于实验室自杀,谁来关心研究生压力?
  8. 最新朋友圈转发截图生成装逼工具源码+实测可用
  9. Altium Designer初学者入门——stm32最小系统的PCB图(接上一篇原理图绘制)
  10. 爱无法用物理公式计算机,几条公式就能描述宇宙 但为何物理学无法告诉生命是什么?...