找回密码
 立即注册
查看: 363|回复: 0

Unity开发《皇室战争》《原神》抽卡系统技术指南

[复制链接]
发表于 2022-7-15 08:12 | 显示全部楼层 |阅读模式
TCG卡牌实时竞技游戏中的《部落冲突:皇室战争》是由风靡全球的手游《部落冲突》主创成员打造的又一力作


很多游戏开发者也想通过自己的技术开发出一款属于自己的《部落冲突:皇室战争》游戏,本篇技术教程将会为大家讲解一下使用Unity3D引擎制作一款《部落冲突:皇室战争》TCG游戏中的核心技术


市面上几乎所有的类型游戏都具备抽卡功能,今天我们主要就聊聊在Unity中如何实现这个功能
<hr/>效果演示

先给大家看一下效果演示,在演示场景中我们实现了:
    定时领取宝箱:每隔一段时间可以领取一次宝箱
    宝箱的分类:能够领取到不同种类的宝箱
    开启宝箱倒计时:想要开启宝箱需要等待一段时间
    以及宝箱物品的控制:使宝箱开出的物品随机


上面这些功能是如何实现的呢?如果想要开出更多的卡牌或宝箱应该如何去做呢?下面就为大家揭秘
如果想要获取本篇文章的素材或是其他案例视频教学资源,可以在文末点击爱丽丝老师的链接卡片免费获取
<hr/>效果实现

下图右边是我们的资源管理界面,左边是数据配置表,其实开卡的奥秘就在数据配置表中,下图中的资源管理器界面中的10000代表木质宝箱,10001代表白银宝箱,10002代表雷电宝箱


如果需要更多的宝箱类型,就只要在数据配置表中在插入一个新的宝箱记录


设置新的宝箱记录为10003,名字设为魔法宝箱,设置宝箱开启倒计时为十秒(如上图)
设置宝箱能够开出的物品和物品数量,数据配置表中的chestOpenNum是开宝箱时的物品概率逻辑,itemids代表能够开出物品的序号(如下图)


这个抽卡系统中能够抽出什么样的物品是由chestOpenNum来决定的,chestOpenNum中的抽卡数据可以分为三组,每组之间用 | 进行分割
第一组数据0,4,2表示宝箱开启时会从itemIds的第0个物品到第4个物品中选取两个作为开启宝箱的部分奖励,第二组数据4,3,2表示宝箱开启时会从第4个物品到4+3也就是第7个物品中选取两个作为开启宝箱的部分奖励,第三组数据的逻辑与第二组同理,最后将这三组数据选取出的物品合在一起就是这次开启宝箱的全部奖励了


将数据配置表配置好以后就可以通过Excel表格来生成配置数据,这里用到了Unity编辑器扩展技术


生成好配置数据后需要重启服务器,我们的服务器是商业项目可用的分布式服务器,它由七到九个服务器进程构成,可以横向拓展更多的服务器来满足万人同服的玩家人数需求,而且我们的项目是支持热重载的,也就是客户端并不需要重新启动就能测试新的项目代码
<hr/>最终效果演示

为了能够百分百出现魔法宝箱,我Hack了我们的服务器,使游戏运行时每次都能生成新增加的魔法宝箱


今天的分享就到这里,如果想要学习制作更加酷炫的卡牌效果开宝箱动画卡牌概率控制完整的卡系统教程可以在下面添加爱丽丝老师的微信号,进群学习交流
如果想要本篇文章的素材或是其他案例视频教学资源,也可以点击下方的爱丽丝老师的链接卡片免费获取
<hr/>更多学习资源请加QQ:1517069595或WX:alice17173获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)
点赞、关注、分享可免费获得配套学习资源
点击观看完整视频

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-15 15:43 , Processed in 0.089778 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表