玩家们心里都清楚,其实游戏的品类超级多,有些人喜欢玩moba、射击竞技类的,有些人喜欢塔防、策略、回合制类的,而又有些人喜欢经营养成、休闲益智类的。休闲益智类游戏,虽没像moba类游戏的激烈操作带来的刺激感,但舒缓的节奏,配合唯美的美术音乐以及很棒故事主题,同样能赢得玩家的喜爱。我在一些应用商店搜索了关于找不同玩法的游戏,不管是下载量还是口碑都是蛮不错的。

那找不同的游戏是如何实现的呢?这游戏的核心本质主要在于两点:其一是关卡数据如何快速高效地配置导出;其二是如何判定玩家是否找出2张相似图片中对应的不同之处。至于其后再引入时间限制的玩法,也只是在前面的核心玩法算法上的丰富而已。套用句古话:“万变不离其宗”。

01

游戏场景的搭建

找不同游戏的游戏界面很简单,主要由2张相似图片对象组成。你可以摆成竖向的,但我这里想把它做成横屏的游戏。游戏场景的结构组成如下图所示。

是不是很简单?嘿嘿。这个场景不仅在游戏运行时使用,也在我们可视化编辑关卡数据时运用到。

02

关卡编辑器工具实现

这类游戏一般都以关卡为单位,每个关卡又大同小异,最笨的方法是为每一个关卡新建一个游戏场景,每个场景就是一个关卡,游戏运行到某关卡时加载对应的场景,这种做法显得笨拙,扩张性和灵活性太差啦!那有木有更好的实现方法呢?答案是有的,游戏场景只有一个,当游戏进行到不同关卡时,只需加载该关卡的配置数据文件进行场景初始化即可,显然第2种方法更可取。那么要如何高效快速地配置关卡数据,这又是个问题,负责配置关卡的很可能是对代码一窍不通的某位仁兄如策划等,尽量让他们配起来爽的飞起!这是我们程序猿首要目标。这就需要写个关卡编辑工具,一个基本都是傻瓜式的界面化操作工具。

接下来介绍关卡编辑工具的实现。

  1. 数据结构设计:数据结构很重要,一个好的数据结构是游戏好实现的基础和关键。

关卡的数据结构:2张精灵图片、所有不同部分的位置和大小信息集合。部分核心代码截图如下。

关卡配置表结构:是关卡数据的List列表,最终导出为.asset文件保存。

  1. 关卡编辑工具编写:关于关卡数据的编辑,笼统地讲就是类似数据库的“增、删、查、改”的操作。工具本质就是将关于关卡数据编辑的操作进行“可视化”,下面是实现的关卡编辑工具的界面。是不是一目了然,一看就知道怎么使用了,哈哈,要的就是这种效果!

接下来针对实现该编辑工具的难点进行介绍,其他的读者可下载本工程源码查看。

首先,将之前配置保存的关卡数据文件加载,如果没有则进行创建。使用AssetDatabase.LoadAssetAtPath进行加载,AssetDatabase.CreateAsset创建.asset文件,部分核心代码截图如下。

其次,是关于如何新增、删除一个关卡,实质是对关卡集合的添加、删除操作。使用levelAsset.LevelDataList.Add/RemoveAt添加新关卡或删除特定关卡,部分核心代码截图如下。

再次,是关于特定关卡的数据编辑修改。

一是关于图像的选择。使用EditorGUILayout.ObjectField可以是精灵属性变量可视化操作,部分核心代码截图如下。

二是热区对象预设对象的创建。

三是关于热区即不同点区的编辑包括创建、位置以及大小设置。实质是在游戏场景中创建一个热区对象,然后把它的位置和大小信息记录下来即可。值得注意的是,俺们这里是在打开关卡编辑界面时,预先在场景中创建了“一批”热区对象的“缓冲池”而且“管够保量”。之后只需取用即可。EditorGUILayout.Vector2Field可以将位置和大小变量可视化。关于posList和sizeList集合操作Add/RemoveAt,部分核心代码截图如下。

至此,一个相对完美的找不同游戏关卡的编辑工具大功告成!

03

核心玩法算法实现

找不同游戏的玩法还蛮简单的,这个算法主要分两个部分。一部分是游戏关卡地图的生成,另一部分是判定所有的热区是否被找到。

首先,介绍一下游戏关卡地图的生成实现。先加载当前关卡数据,根据关卡配置加载2张相似的图片,然后在两张图片上的相对位置生成相同的“透明”的热区对象即可,且这些热区对象支持点击响应操作。

部分核心代码截图如下

其次,是关于找到不同热区的检查判定。如果对应编号的热区其中一个被点击,则在这对热区对象处生成一对儿“圈圈”表示已找到。等到所有的热区都被找到,则游戏通关!

部分代码截图如下

04

结语

文章至此也就把如何制作一款比较火的找不同的游戏全过程介绍完了,如果读者有兴趣自己去做出一款高品质的找不同类型的游戏,可以在这个Demo项目工程基础上进行扩展和丰富。当然这是俺一家之言,找不同的核心玩法实现方式有很多种,只是做个抛砖引玉哈。欢迎大家评论区留言,一起交流学习!最后附上Demo工程地址:

链接:https://pan.baidu.com/s/1TK6I--DdGD__hvwhQrLdfg

提取码:iozr

--来自百度网盘超级会员V5的分享

用Unity制作一个很火的找不同游戏,包括核心玩法与关卡编辑器工具的实现相关推荐

  1. unity制作qq炫舞的核心玩法

    她 文章目录 一. 介绍 二. 重点知识点和游戏逻辑 三. 箭头脚本 四. 管理箭头脚本 五. 管理全局脚本 六. 管理玩家输入脚本 七. ui脚本 八. 制作动画 九. 添加音乐节奏 十. 工程下载 ...

  2. RayFire for Unity制作一个可以被击碎的岩石

    RayFire for Unity制作一个可以被击碎的岩石 1.导入名字为Rock_05的Prefab 2.添加脚本 Rayfire Shatter,选择一个type,然点击Fragment,这时可以 ...

  3. 网上超火的微信昵称和头像创意玩法 个性又帅气 有意思!

    之前分享过不少单独的微信昵称和头像玩法,不过总有小伙伴留言表示不够个性.今天,小编在网上发现了一个非常有创意的微信昵称+头像组合玩法,在抖音上火过,挺有意思的. 网上超火的微信昵称+头像创意玩法,先看 ...

  4. 【游戏开发创新】手把手教你使用Unity制作一个高仿酷狗音乐播放器,滨崎步,旋律起,爷青回(声音可视化 | 频谱 | Audio)

    文章目录 一.前言 二.获取UI素材 三.使用UGUI制作界面 1.界面布局 2.账号圆形头像 3.搜索框 4.调节UI层 5.黑色按钮悬浮高亮效果 6.纯文字按钮 7.滚动列表自适应 8.歌名与视频 ...

  5. Unity制作一个望远镜与查看器摄像机

    Unity 游戏开发技巧集锦之制作一个望远镜与查看器摄像机 Unity中制作一个望远镜 本节制作的望远镜,在鼠标左键按下时,看到的视图会变大:当不再按下的时候,会慢慢缩小成原来的视图.游戏中时常出现的 ...

  6. 使用Unity制作一个简单的聊天室

    使用控制台作为一个服务器,在Unity中开发客户端,制作一个简易的聊天室,无论哪个客户端发送消息,其他的客户端都会实时的显示出来. 服务器代码 using System; using System.C ...

  7. unity制作一个可以自由滑动收缩的历史记录功能。

    公司在做一款模拟经营类的卖车游戏,需要一个简单的历史记录功能,放在左上角,记录最近20条的收入/支出记录.超过2秒不动则收起.收起时展示最近的一个消息记录. 用到的组件是ScrollView,使用方法 ...

  8. 互动游戏对战平台推荐:盘点很火的互动小游戏多人对战平台

    虽然是个妹子,但我超有游戏天赋呦!还记得我和表哥在20年前经常在家里用世嘉.ps等主机联机玩幽游白书.魂斗罗的日子,那份美好变成了我们这代人童年最宝贵的记忆,不管是对战的互相嘲讽还是与好友一同通关的瞬 ...

  9. python 从一道作业题到制作一个图形界面的“诈金花”游戏

    题目很简单:就是自己写一个程序,实现诈金花游戏的发牌.判断输赢. 规则: 一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢. 牌型: 豹子:一样大的三张牌,如10,10,10 顺金:又称同 ...

最新文章

  1. Cell子刊:特异靶向病原菌致病力的植物天然产物的作用机制
  2. 云网融合 — 基于 SD-DCI 的云间网络融合
  3. 电子商务实战课程-张晨光-专题视频课程
  4. react学习(7)----react转换值同render
  5. emailjava中怎么校验_Java使用注解实现参数统一校验功能
  6. GolVe向量化做文本分类
  7. python运维脚本部署jdk_Jenkins 为Jenkins添加Windows Slave远程执行python项目脚本
  8. Codeforces 1114C(数论+唯一分解)
  9. 【快速高斯模糊的实现】
  10. 基于51单片机的简易计算器
  11. ES集群不通,日志报[node-3] not enough master nodes discovered during pinging (found [[Candidate{node={node-3
  12. 全球顶尖科创和商业巨头齐聚,巨杉数据库亮相2021CNBC全球科技大会
  13. 麦森数 OpenJ_Bailian - 2706
  14. Vue实现导入Excel功能
  15. 我是如何入行嵌入式开发的
  16. 【4.29】Codeforces 刷题
  17. linux服务器杀毒软件命令,悬镜Linux服务器卫士-木马查杀详解
  18. [2008-12-12]希捷桌面、笔记本硬盘质保期缩短至3年
  19. win10计算机怎么连接网络,如何创建宽带连接_win10电脑宽带连接怎么创建 - 驱动管家...
  20. 计算机运维考核指标,信息中心考核指标库

热门文章

  1. 阿里云服务器操作系统有哪些?如何选择?
  2. CSDN Markdown编辑器将公式取消斜体的方法
  3. mysql占用内存过高_MySQL内存消耗过高问题处理
  4. importOrder
  5. epub格式电子书剖析 .
  6. 基于Python+MySQL的书店销售管理管理子系统设计
  7. AutoJs学习-QQ自动点赞及打卡
  8. 阿里云编码规范答案_令人沮丧的答案是“我如何开始学习编码?”
  9. S32K116调试记录(1)SWD接口调试
  10. Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset I3D论文精读