Unity制作一个简单抽卡系统(简单好抄)
业务流程:点击抽卡——>播放动画——>显示抽卡面板——>将随机结果添加到面板中——>关闭面板
1.准备素材并导入Unity中(包含2个抽卡动画,抽卡结果的图片,一个背景图片,一个你的展示图片)

2.给主摄像机添加2个视频播放组件,将画布的渲染模式改为摄像机并将摄像机拖到这里来(这一步非常重要,不然无法正常播放抽卡动画)


3.将抽卡动画拖到视频播放器组件的视频剪辑中,将渲染模式改为摄像机近平面,取消唤醒时播放

4.制作抽卡面板(展示面板),新建两个原始图像,将抽卡背景拖到纹理这里,同样的方法将展示用的图片也拖到另一个原始图像中(调整连个原始图像的大小),然后添加2个按钮

5.制作抽卡结果的画布(以10连为例)
第一步:新建一个面板并在颜色这里改变它的透明度和颜色改为你喜欢的颜色,并添加Grid Layout Group这个组件(这个组件能帮助我们快速实现格子类的布局)

第二步:在面板中添加10个原始图像,并修改面板中刚刚添加组件的属性(可以稍微修改一下,让他和你的抽卡结果的卡片适配,可以自己拖一张进去看看效果),这里如果遇到新建的原始图像没显示在面板中,不要慌,当你修改Grid Layout Group组件的值的时候他会自动帮你调好位置(我遇到的时候是这样的)。

第三步:用同样的方法制作单抽的面板(把面板命个名,方便后期查找)

第四步:隐藏两个面板

6.编写脚本(以10连为例)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;public class Choukabutton2 : MonoBehaviour
{public VideoPlayer chouka2;//视频播放组件public GameObject danchouplan2;//十连的面板public Texture2D[] tuxaigns;//这个是抽卡结果纹理集合public RawImage[] rawImages;//原始图像合集void Start(){chouka2.Stop();danchouplan2.SetActive(false);//影藏抽卡画布// 注册事件监听器chouka2.loopPointReached += OnVideoEnd;}public void click(){chouka2.Play();}private void OnVideoEnd(VideoPlayer source){// 停止视频播放chouka2.Stop();danchouplan2.SetActive(true);//显示抽卡结果for (int i = 0; i < 10; i++){rawImages[i] = rawImages[i].GetComponent<RawImage>();int w = Random.Range(0,4);//我这里有4中抽卡结果所以随机的是(0,1,2,3)这4个数,这个数字根据你的抽卡结果数自己更改。你也可以在这里添加保底机制什么的。rawImages[i].texture = tuxaigns[w];}}
}
7.先将脚本加到10连按钮上,然后点击加号给按钮绑定事件,将10连按钮拖到对象这个位置

8.给按钮选择点击事件
9.将素材1脚本中(这里步骤有点多,一步一步来)
第一步:将10连的动画拖进来(这里有个方法先将这个带脚本的组件锁定然后再点击主摄像机(刚刚添加视频播放组件的那个),然后打开它的属性面板将动画播放控制器拖进来)

第二步:将十连的面板拖到这里

第三步:将10连的画布上的原始图像和抽卡结果与脚本绑定(上面这个数添你抽卡结果种类的数量,下面就填10(因为这是10连))

第4步:将结果图片和原始图像拖到对应位置(别漏掉就行)

第五步:其实到可以就可以点击10连查看效果了(如果大小不合适可以再去调一下10连面板的大小)


10.用同样的方法给单抽制作点击事件(这里就不过多描述了,这里是单抽的脚本)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Video;public class Choukabutton1 : MonoBehaviour
{public VideoPlayer chouka;public GameObject danchouplan;//单抽的面板public Texture2D[] tuxaigns;//纹理集合public RawImage rawImage;//原始图像void Start(){chouka.Stop();danchouplan.SetActive(false);//影藏抽卡画布// 注册事件监听器chouka.loopPointReached += OnVideoEnd;}public void click() {chouka.Play();}private void OnVideoEnd(VideoPlayer source){// 停止视频播放chouka.Stop();danchouplan.SetActive(true);//显示抽卡结果int w = Random.Range(0, 5);//生成随机数rawImage.texture = tuxaigns[w];//更换纹理}
}
11. 新建一个脚本添加关闭面板功能(这里点击抽卡过后我们的画布会一直显示,所以这里给屏幕添加一个点击事件,如果抽卡结束后,当玩家点击屏幕的时候,就判断抽卡面板是否显示,如果显示就关闭它)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class Planclose : MonoBehaviour
{public GameObject choukaplan1;public GameObject choukaplan2;private void Update(){if (Input.GetMouseButton(0)){if (choukaplan1 != null && choukaplan1.activeSelf){choukaplan1.SetActive(false);}if (choukaplan2 != null && choukaplan2.activeSelf){choukaplan2.SetActive(false);}}}
}
将脚本挂到一个空对象上,并将10连和单抽的面板拖到这里来就可以了。
到这里就全部结束了,这篇文章对你有帮助不要忘记点击关注哦!
相关文章:
Unity制作一个简单抽卡系统(简单好抄)
业务流程:点击抽卡——>播放动画——>显示抽卡面板——>将随机结果添加到面板中——>关闭面板 1.准备素材并导入Unity中(包含2个抽卡动画,抽卡结果的图片,一个背景图片,一个你的展示图片) 2.给…...
简单多状态DP问题
这里写目录标题 什么是多状态DP解决多状态DP问题应该怎么做?关于多状态DP问题的几道题1.按摩师2.打家劫舍Ⅱ3.删除并获得点数4.粉刷房子5.买卖股票的最佳时期含手冷冻期 总结 什么是多状态DP 多状态动态规划(Multi-State Dynamic Programming, Multi-St…...
cpu,缓存,辅存,主存之间的关系及特点
关系图 示意图: ------------------- | CPU | | ------------- | | | 寄存器 | | | ------------- | | | L1缓存 | | | ------------- | | | L2缓存 | | | ------------- | | | L3缓存 | | | ------------- | ----…...
【每日刷题】Day77
【每日刷题】Day77 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. LCR 159. 库存管理 III - 力扣(LeetCode) 2. LCR 075. 数组的相对排序 - 力…...
chrome-base源码分析(1)macros模块
Chrome-base源码分析(2)之Macros模块 Author:Once Day Date:2024年6月29日 漫漫长路,才刚刚开始… 全系列文章请查看专栏: 源码分析_Once-Day的博客-CSDN博客 参考文档: macros - Chromium Code SearchChrome base 库详解:工…...
玩转springboot之springboot定制嵌入式的servlet
springboot定制嵌入式的servlet容器 修改容器配置 有两种方式可以修改容器的配置 可以直接在配置文件中修改和server有关的配置 server.port8081 server.tomcat.uri-encodingUTF-8//通用的Servlet容器设置 server.xxx //指定Tomcat的设置 server.tomcat.xxx编写一个EmbeddedSer…...
dell服务器RAID5磁盘阵列出现故障的解决过程二——热备盘制作与坏盘替换过程
目录 背景方案概念全局热备(Global Hot Spare):独立热备(Dedicated Hot Spare): 过程8号制作成热备清除配置制作独立热备热备顶替坏盘直接rebuild 更换2号盘2号热备 注意注意事项foreign状态要先清除配置 背…...
Elasticsearch开启认证|为ES设置账号密码|ES账号密码设置|ES单机开启认证|ES集群开启认证
文章目录 前言单节点模式开启认证生成节点证书修改ES配置文件为内置账号添加密码Kibana修改配置验证 ES集群开启认证验证 前言 ES安装完成并运行,默认情况下是允许任何用户访问的,这样并不安全,可以为ES开启认证,设置账号密码。 …...
Excel 数据筛选难题解决
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…...
Web实时通信的学习之旅:WebSocket入门指南及示例演示
文章目录 WebSocket的特点1、工作原理2、特点3、WebSocket 协议介绍4、安全性 WebSocket的使用一、服务端1、创建实例:创建一个webScoket实例对象1.1、WebSocket.Server(options[,callback])方法中options对象所支持的参数1.2、同样也有一个加密的 wss:/…...
分治精炼宝库-----快速排序运用(⌯꒪꒫꒪)੭
目录 一.基本概念: 一.颜色分类: 二.排序数组: 三.数组中的第k个最大元素: 解法一:快速选择算法 解法二:简单粗暴优先级队列 四.库存管理Ⅲ: 解法一:快速选择 解法二:简单粗…...
快速修复mfc100u.dll丢失解决方案
相连文章:SecureCRT的安装破解 [详细过程2024] 有小伙伴向我反馈在打开SecureFX注册机之后显示【mfc100u.dll找不到】重装之后也没有用,这个是因为Microsoft Visual C的运行时组件和库出现了错误,直接选择重新安装就可以 出现这种情况的原因…...
【C++深度探索】继承机制详解(一)
hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页:大耳朵土土垚的博客 …...
力扣第218题“天际线问题”
在本篇文章中,我们将详细解读力扣第218题“天际线问题”。通过学习本篇文章,读者将掌握如何使用扫描线算法和堆来解决这一问题,并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释,以便于理解。 问题描述 力扣第…...
帝国cms未审核文章可视化预览效果
有时候为了让编辑更加清楚的看到别人审核之后的效果,同时文章有需要下一级审核才能在前端展示出来,今天就来展示一个未审核文章预览审核后的效果 这次给某出版社开发的时候,他们需要实现编辑能够预览自己发布之后的审核效果,所以就…...
医院管理系统带万字文档医院预约挂号管理系统基于spingboot和vue的前后端分离java项目java课程设计java毕业设计
文章目录 仓库管理系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档(9.9¥带走) 仓库管理系统 一、项目演示 医院管理系统 二、项目介绍 基于springbootvue的前后端分离医院管…...
爬虫技术在物联网数据采集中的应用
爬虫技术在物联网数据采集中的应用案例主要包括以下几个方面: 电商平台数据采集:例如,使用Python编写的网络爬虫可以用于爬取京东网页相关数据,如品牌、标题、价格、店铺等,并进行数据处理及可视化展示。这种方法不仅可…...
spring boot初始化的几个总结
spring intializr File->New->Project 注意:Spring Initializer中 Java版本选择模块已经不支持1.8了。 Spring Boot 3.x要求 Java最低版本为17, 最新的SpringBoot版本已经要求Java22了 所以,你可以升级Java版本,使用Spri…...
springcloud第4季 seata报could not find any implementation for class
一 问题说明 1.1 描述 在使用seata2.0alibaba-cloud 2022.0.0.0-RC2nacos 2.2.3 模拟下订单分布式事务场景,出现如下问题:java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 查看服务端:java.util.ServiceCo…...
IT之家最新科技热点
人不走空 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 目录 🌈个人主页:人不走空 💖系列专栏:算法专题 ⏰诗词歌…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
二维FDTD算法仿真
二维FDTD算法仿真,并带完全匹配层,输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...
