在捕鱼达人的游戏中可以发现鱼群会从四面八方来进行生成

并且有些鱼群会进行直线游走,游戏鱼群会进行转弯游走,以上是这个游戏的核心之一。

原理:可以在游戏界面的外面一圈放置几个空物体(该空物体类似鱼的出生地),让鱼群随机从这几个空物体进行生成。


图中用带有箭头的线条其实就是鱼群的行动轨迹,可以通过脚本来控制实现鱼群的行动路线(直线游动或旋转)。

Unity中的效果:

可以看见在游戏界面外有一圈白色线框的正方体,这就是鱼群的生成点,在Hierarchy面板中创建一个空物体让这些生成点为这个空物体的子物体,方便管理,注意的是在最下方不能有鱼群的生成点,因为子弹会从枪口位置生成,但如果有鱼群从下方生成,子弹会打到鱼群,但场景中有许多的鱼群生成,会发现子弹没有打出,这样会降低我们的游戏体验,所以不要在枪的位置下放置鱼群的生成点。

脚本的编辑

要生成鱼群那么我们就要获取这些鱼群的生成点,所以我们定义Transform[] GenPosition,一个数组来存放这些鱼群的生成点。同时我们也要获取鱼的预制体,所以定义GameObject[] FishPrefabs来存放鱼群的预制体。注意:场景中会生成很多鱼,这样会导致Hierarchy中的FishPrefabs会非常混乱,所以定义一个组件fishHolder,让生成的鱼群都做为它的子物体。

接下来,我们要定义genPosIndex,fishPreIndex这个是脚标为了在众多的生成点中随机某一个生成点来产生鱼群,同理fishPreIndex是为了随机生成某一中鱼群,以及鱼群的最大数量和最大速度,以及随机的鱼群的数量和随机的鱼群的速度,这里的moveTpye = Random.Range(0, 2)是随机出一个数字,来让鱼群是直走生效还是转弯生效,我们强制让moveTpye=0为直走,moveTpye=1为转弯。

实现直线游走的方法
使用协程的方法实现直线游走方法

首先要获取genPosIndex,fishPreIndex,Num,Speed,angOffset这些值,然后通过for循环来遍历,在这个方法中注意的是,因为鱼群是一起生成的,所以有些鱼的体型比较修长,在生成的过程中,可能后面的鱼会把前面的鱼的尾巴遮住所以要获取鱼身上的SpriteRenderer组件来增加自身层内的顺序,来解决这个问题(fish.GetComponent().sortingOrder += i;//在SpriteRenderer上添加自身层内顺序).

实现转弯游走的方法
与直线游走的方法原理相似

最后,因为场景中的鱼群可能过多,我们在Start方法中使用InvokeRepeating方法,来在每次0.3秒后实现MakeFishs方法。

Unity捕鱼达人5-----鱼群的生成相关推荐

  1. unity捕鱼达人3----UI界面的制作以及相关功能的实现

    从上述两幅图中我们可以看到主要UI有:开始游戏,继续游戏,倒计时以及金币,等级和名称等等. 一:开始界面的实现 因为我们要进入游戏界面所以我们肯定要加载游戏界面,所以在Unity中我们有SceneMa ...

  2. 游戏制作之路-unity捕鱼达人(一 开始以及加载界面的制作)

    Unity捕鱼达人的制作 一.创建开始界面 根据上一篇我们所讲的,很容易就能把开始界面做出来. 二.游戏加载场景 游戏加载条的制作,我是用到了unity中的slider UI组件,如图 slider组 ...

  3. unity 捕鱼达人鱼群的移动

    今天在做东西的时候,有个需求就是要做一群鱼在一定的范围内进行移动.当时候看到这个懵逼的,后来想想如果想让鱼在一定的范围内进行移动首先进行确定移动的范围,然后鱼在这个范围内应该游到哪里,然后怎样再加一些 ...

  4. Unity捕鱼达人4-----鱼的游动动画以及死亡动画实现以及对应子弹击中鱼后造成伤害的实现和生成金币特效

    鱼的动画 在Game视图中可以发现鱼在游动,这是通过动画来实现的. 1.在Project面板选中资源包中的相关动物的图片后托入Hierarchy面板中 接着会弹出界面 我们将放在Animation文件 ...

  5. unity捕鱼达人----炮台的旋转的实现以及水波纹动画的制作

    炮台的旋转 炮台的转向由鼠标控制,当我们控制鼠标向右旋转使可以发现,炮台的position为负的 所以我们可以以炮台的正方向与鼠标位置的夹角来实现炮台的旋转 如图中所示用加粗笔所画的表示MousePo ...

  6. Unity Shader动画-做捕鱼达人效果

    本篇将介绍向Unity Shader中引入时间变量,以实现一个顶点动画和一个UV动画的效果. 捕鱼达人效果 内置时间变量 1: float4是内置向量 (x, y, z, w); float4 a; ...

  7. 【Unity】捕鱼达人开发流程

    核心功能:炮台的控制.炮台发射子弹.鱼群孵化器和鱼群行为. GunFollow.cs脚本:(炮台的控制) using System.Collections; using System.Collecti ...

  8. js原生捕鱼达人(一)

    捕鱼达人的游戏大家都很熟悉吧,接下来的两三天,我会将整个游戏的原生js写法详细的写出来,整个游戏应用了面向对象的写法:创建构造函数,在构造函数上面添加对象的属性,然后在构造函数的原型上添加方法,当然这 ...

  9. java捕鱼设计_JAVA毕业设计教程:用swing实现捕鱼达人代码教程

    用JAVA SWING实现的捕鱼教程 开发工具:ECLIPSE 实现技术:JAVA SWING 用到的JAR包:xmlpull_1_1_3_4c.jar.dom4j-1.6.1.jar.jl1.0.j ...

最新文章

  1. 8.1.4 Authentication in a Web Application
  2. java设计模式观察者模式_Java设计模式(9)——观察者模式
  3. QT的QOpenGLDebugLogger类的使用
  4. Java黑皮书课后题第9章:9.1 (Rectangle类)遵照9.2节中Circle类的例子,设计一个名为Rectangle的类表示矩形
  5. 如何在虚拟linux环境运行python_Python 虚拟环境 | Mac/Linux下如何避坑安装配置Virtualenv...
  6. kubernetes ConfigMap和Secret:配置应用程序
  7. Python操作ElasticSearch条件查询
  8. win7日历加入农历_还是农历更亲切,春节制作一个带农历的日历,欢欢喜喜过新年...
  9. 数据库SQL Server 基础知识思维导图
  10. 正则判断手机号地区_国内外手机号码正则表达式汇总
  11. 如何把视频文件转换成图片
  12. linux 64 iso镜像文件下载地址,Linux(RHEL) ISO镜像文件-下载地址
  13. 《女神异闻录5》那套酷炫界面的背后,是18年来的始终如一
  14. window 下载安装minio
  15. 10nm 以一敌二 — 雷蛇灵刃潜行 2020 水银版评测
  16. lsw asw dsw csw
  17. 支持三个cpu的服务器,产品技术-新华三发布搭载英特尔第三代可扩展处理器的H3C UniServer R6900 G5 服务器-新华三集团-H3C...
  18. 6,Matlab轨迹生成
  19. 步数精灵v3.0运动安卓版
  20. 淘宝商城推广以及促销项目

热门文章

  1. 什么才算好的监控系统?
  2. linux架构师面试题,怎么判断web前端架构师能力高低,前端架构师面试题目
  3. matlab simulink的scope 示波器光标如何移动记录
  4. 纯虚函数 和 抽象类
  5. 高版本Andriod Studio集成HMS环境看这篇就够了(附加步骤多图、资源下载、源代码、问题总结)
  6. Lesson 1. 线性回归模型的一般实现形式
  7. JAVA的向上转型与向下转型(二)
  8. 2018年蓝桥杯C语言B组
  9. 法线向量如何归一化(Normalize)
  10. 使用 kindeditor 编辑器无法上传图片