《Unity3D-鱼的方向 鱼的游动 控制代码》
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-鱼的方向 鱼的游动 控制代码》相关推荐
- ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析
视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...
- 信息学奥赛真题解析(玩具谜题)
玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...
- 信息学奥赛之初赛 第1轮 讲解(01-08课)
信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...
- 信息学奥赛一本通习题答案(五)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通习题答案(三)
最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...
- 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题
第1章 快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章 素数 第 3 章 约数 第 4 章 同余问题 第 5 章 矩阵乘法 第 6 章 ...
- 信息学奥赛一本通题目代码(非题库)
为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...
- 信息学奥赛一本通(C++版) 刷题 记录
总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...
- 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离
首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...
最新文章
- 谈谈Promise的前世今生
- Lock“锁定”语句(C# 参考)
- linux如何停用xdmcp服务,如何禁用XDMCP服务
- 色差仪软件的安装和电池充电
- python读取文件时提示“UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xad in position 1264: illegal multi
- html5监听动画结束,css3动画是否结束监听事件
- 等级保护第三级安全扩展要求笔记(2019)
- 选拔人才的原则和误区
- 关于iReport中纸张的大小 换算
- 如何为word增加页码,且第一页不显示页码?
- 西门子S7-1200使用PN口总线控制V90伺服
- java生成二维码技术实现
- 三星a5100多少钱_请问三星A5100现在啥价格?
- matlab 将矩阵中的NAN替换为0
- Golang爬虫框架 colly 简介
- Pyecharts可视化分析图表
- U盘重装系统,踩了很多坑后的总结
- wpspbc按钮是什么意思_意外:我不小心按下了路由器上的wps按钮?我该怎么办?...
- angelica 下载_angelica
- 参照《自己动手做CPU》自己动手做CPU