介绍

单机大鱼吃小鱼是一款经典的休闲游戏,玩家需要控制一条小鱼,通过吃掉比自己小的鱼来不断成长,同时避开比自己大的鱼的攻击。游戏画面简洁明快,操作简单易上手,是一款适合所有年龄段的游戏。游戏中还有各种道具和技能可以帮助玩家更快地成长,增加游戏的趣味性。


制作玩家小鱼

切割sprite图片。添加刚体、设置线性阻力。因为在深海移动,所以需要阻力。添加碰撞体。



控制小鱼

防止小鱼出界,对场景添加碰撞体。

控制小鱼的移动,通过加力的方式,化向量
 float h = Input.GetAxis("Horizontal");float v = Input.GetAxis("Vertical");moveDir = new Vector2(h, v).normalized;
 private void FixedUpdate(){rb.AddForce(moveDir * moveForce);}
控制小鱼翻转,向左移动头朝左,向右移动头朝右

float h = Input.GetAxis("Horizontal");float v = Input.GetAxis("Vertical");moveDir = new Vector2(h, v).normalized;if (h > 0)childObj.localScale = new Vector3(1, 1, 1);else if (h < 0)childObj.localScale = new Vector3(-1, 1, 1);

制作生成鱼的种类

设置多种不同形状的鱼,放进预制体文件夹

随机大小设置体积
    public Vector2 fishScaleRange;
 fishScale = Random.Range(fishScaleRange.x, fishScaleRange.y);transform.localScale = Vector3.one * fishScale;
随机移动速度设置范围
    public Vector2 moveSpeedRange;
    moveSpeed = Random.Range(moveSpeedRange.x, moveSpeedRange.y);
左右两边生成鱼。
左边生成的向右运动。

右边生成的向左运动,绕y轴旋转180度即可实现。

   transform.position += transform.right * moveSpeed * Time.deltaTime;

控制游戏机制

随机获取生成小鱼的种类
    public GameObject[] fishPrefabs;
GameObject fishToSpawn = fishPrefabs[Random.Range(0, fishPrefabs.Length)];
控制生成鱼的范围。
如果左边生成,不用转向,默认向右移动。
右边生成,需要转向,绕y轴旋转180度,向左移动。
GameObject fishToSpawn = fishPrefabs[Random.Range(0, fishPrefabs.Length)];int dir = Random.value > 0.5f ? 1 : -1;Vector2 randomSpawnPos = new Vector2(dir * 7f, Random.Range(-4.7f, 4.7f));GameObject fish = Instantiate(fishToSpawn, randomSpawnPos, Quaternion.identity);fish.GetComponent<Fish>().SpawnFish();if (dir == 1)fish.transform.Rotate(Vector3.up, 180f);
碰撞检测。
碰到体积比自己的大的小鱼,被吃掉。
碰到比自己小的鱼,吃掉它。
private void OnTriggerEnter2D(Collider2D collision){if(collision.gameObject.GetComponent<Fish>() != null){if(fishScale > collision.gameObject.GetComponent<Fish>().fishScale){Destroy(collision.gameObject);Grow(collision.gameObject.GetComponent<Fish>().fishScale);}else{Die();}}}
成长,吃掉比自己的小的鱼,体积增大百分之五(可以任意调节)
fishScale += value / 20f;
transform.localScale = Vector3.one * fishScale;
每隔固定时间进行新的鱼的生成。
 void Update(){spawnTimer -= Time.deltaTime;if(spawnTimer < 0){SpawnNewFish();spawnTimer = Random.Range(spawnRateRange.x, spawnRateRange.y);}}

控制分数面板

吃一条鱼,数字加1
public void GainScore(int amount){score += amount;string zero = "000000";scoreText.text = zero.Substring(0, zero.Length - score.ToString().Length) + score;}


协程的应用

游戏结束后,等待5秒,重新加载该场=场景

yield return new WaitForSeconds(delayTime); // 等待5秒钟
SceneManager.LoadScene(SceneManager.GetActiveScene().name); // 重新加载当前场景

下载

链接: https://pan.baidu.com/s/1209fZrfIDkSS_lQLDY98IA

提取码: esqp


unity,大鱼吃小鱼相关推荐

  1. [Unity WWW] 跨域访问解决方法

    什么是跨域访问 域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation).信任关系是连接在域与域之间的桥梁.当一个域与其他域建立了信任 ...

  2. unity人物旋转移动代码_Unity3D研究院之脚本实现模型的平移与旋转(六)

    123 说: 雨松大大,有个问题想请教一下,我用UNET构建了个小场景,在电脑上可以客户端可以连接到服务器,Windows和Linux都可以,发布到安卓缺连不了,这是问什么呢 说: 求教一下,刚刚接触 ...

  3. unity课设小游戏_Unity制作20个迷你小游戏实例训练视频教程

    本教程是关于Unity制作20个迷你小游戏实例训练视频教程,时长:20小时,大小:3.8 GB,MP4高清视频格式,教程使用软件:Unity,附源文件,作者:Raja Biswas,共97个章节,语言 ...

  4. steamvr unity 连接眼镜_150度FOV,自研显示方案,Kura公布全新AR眼镜Gallium

    去年11月,一家名为Kura的美国AR初创公司就曝光了一款视场角135度.亮度2000nit的AR光波导原型,其视场角和亮度数据远超现有AR方案,当时获了业内广泛关注. 近期,Kura创始人兼CEO ...

  5. Hololens Unity 开发入门 之 Hello HoloLens

    Hololens Unity 开发入门 之 Hello HoloLens~ 本文主要记录 HoloLens Unity 开发入门 ~ 一.说在前面的话 Unity 对 VR AR 甚至 将来的 MR ...

  6. Unity导出apk出现的问题,JDK,Android SDK,NDK,无“安装模块”

    导出apk失败 使用unity导出apk文件,会出现提示:需要合适版本的JDK.Android SDK和Android NDK,要找到.下载和安装好合适的版本非常耗费时间, 网上很多教程指出可以直接在 ...

  7. 学习在Unity中创建一个动作RPG游戏

    游戏开发变得简单.使用Unity学习C#并创建您自己的动作角色扮演游戏! 你会学到什么 学习C#,一种现代通用的编程语言. 了解Unity中2D发展的能力. 发展强大的和可移植的解决问题的技能. 了解 ...

  8. Unity 创建2D平台游戏开发学习教程

    了解如何使用C#在Unity中创建您的第一款2D平台游戏 你会学到什么 使用Unity创建2D奥运会 使用可脚本化的对象和单一模式 使用良好的编程实践 创造武器和射弹 使用可脚本化的对象和委托模式创建 ...

  9. Unity从零开始构建能力体系 Unity Ability System

    从零开始构建能力体系 你会学到什么 如何实施能力体系 如何使用用户界面工具包创建用户界面 如何使用Unity的GraphView API 如何实现保存系统 MP4 |视频:h264,1280×720 ...

最新文章

  1. 遭遇“生活天花板”,如何用 OKR 弯道超车?
  2. java反射获得注释_Java反射、注解
  3. 《精通移动app测试实战:技术、工具和案例》图书目录
  4. 微型计算机原理及其应用彭楚武答案第三章,微机原理及其应用_第1章.ppt
  5. 作者:胡卫生(1964-),男,博士,上海交通大学教授、博士生导师,主要研究方向为下一代光接入网、光交换、光网络等。...
  6. 优秀的SharePoint 2013开发工具有哪些(一)
  7. 超好看的B站首页顶部景深动态特效源码
  8. 靠手速!华为新旗舰今晚发布:价格破万
  9. java读取合并单元格_Java POI常用方法,读取单元格的值,设置单元格格式,合并单元格,获取已合并的单元格,导出至本地等...
  10. 《深入理解java虚拟机》 - 需要一本书来融汇贯通你的经验(下)
  11. Linux 容器 vs 虚拟机 —— 谁更胜一筹
  12. Tomcat+MySql+jdbc
  13. JavaScript函数实例(一)
  14. ioswifi信号测试软件app,‎App Store 上的“Speedtest - 网络测速测量和wifi分析仪”...
  15. ubuntu显示时间不正确的问题解决
  16. Frontend Development
  17. SONET/SDH概述
  18. 新海诚画集[秒速5センチメートル:樱花抄·學舍]...
  19. 20本英文书点亮你的人生智慧
  20. 窗口过程,窗口过程函数

热门文章

  1. 绕过Tiktok强制登录
  2. 2016 cherish set sail
  3. HDU-3567 Eight II
  4. JavaScript 的 常见循环
  5. iphone13和12外观的区别 iphone13和iphone12对比哪个好
  6. OPENGL VBO,FBO和PBO
  7. 2g内存测试软件,轻松处理造成2G内存只有1G可用的妙招
  8. 在VMare中kali安装nessus详解
  9. GitLab默认初始密码
  10. 5分钟带你重置Gitlab管理员账户密码