Unity3d背包系统实现(包括UI设计以及代码框架
前言
来公司转眼一个多月了,大佬让我去做一个demo。起初要做一个一刀99级,哈哈,可是越来越偏,但是基础的rpg功能都是有了,比如,背包,任务,以及技能,哦对了,还有智障AI,哈哈,索性写一篇文章下分享下自己的实现方式(轻喷
背包UI设计
实现拖拽
- 判断是否点击了一个item(比如上图的一把剑)对象:
- 判断起始点点击的是哪一部分的item
- 然后在拖拽完之后判断鼠标抬起时点击的是哪一部分的item
第一种情况:如果是空白区域,return
第二种情况:如果是已穿戴的item,再对起始点点击的item分情况,如果起始点点击为空白区域,return等等
以此类推
4.这里是我所实现的接口
背包框架
- 采用了MVC的方式
CTRL:
MODEL:
- 初期写的时候我也很迷惑,该如何写类的方法,后面直到我把唯一数据也就是item的list在MODEL里权限改为private之后,就大致明了了,与数据有关的方法请写到MODEL里。
然后再去分析背包会有什么方法
- 放入物品–>引出的方法就是判断背包是否有空闲空间,那这个方法与数据有关,要写到MODEL里(记小本本,以及要有一个数据的添加,这个方法也要写到MODEL里
- 扔掉物品…
诸如此类,我相信,我代码会变得更好enmmm
数据存储
- 所有物品(装备和消耗品)信息存储
所有物品指的是这个游戏里的全部item,包括你得到的和尚未得到的
所以,背包代码的MODEL里的存储的全是itemName,如果想要获得物品信息,直接可以通过名字使用itemMgr.GetItemInfo来获取,避免数据不必要的错误。 - 背包内的物品存储
这里的保存我选择的是存成txt文件
分为三步,未穿戴装备,消耗品,以及已穿戴装备
结语
这里还是要感谢曾经玩过的DNF,十分完备的背包系统。
Unity3d背包系统实现(包括UI设计以及代码框架相关推荐
- Unity3d背包系统(三)—— 设计物品类的JSON文件
这节谈谈物品的json文件,json文件主要的包括两种结构: 一种是 "名称/值"对的集合,在不同的语言中,被解析的方式也不用如:对象(object),记录(record),结构( ...
- UI 设计代码化:低代码式设计语言 —— Unflow
UI 设计代码化,即将软件的 UI 设计与 UI 交互转换为特定的领域语言,并使用代码的方式来进行管理.它可以直接将需求转换为 UI 原型,让设计人员基于此进行设计:还负责将其转换对应的 UI 代码, ...
- 麓言信息零基础学习UI设计需要会代码吗?
最近一些在学习UI设计的伙伴经常会问到我一个问题,零基础学习UI设计需要会代码吗?我要是不会代码,以后是不是找不到工作啊,今天就针对这问题呢,给大家做一个详细的解答. 首先我们要知道作为一 ...
- 13个UI设计软件,一次满足你的UI设计需求
UI设计师的角色是当今互联网时代非常重要的一部分.许多计算机和移动软件都需要UI设计师的参与,这个过程复杂而乏味.这里将与您分享13个UI设计软件,希望帮助您正确选择UI设计软件,节省工作量,创建更多 ...
- UI设计师常去的国外 UI设计素材网站有哪些?
UI设计师需要在设计中使用大量的图标.字体.颜色.按钮等UI设计素材.在国外,有很多优秀的UI设计素材网站,下面介绍10个UI设计师常去的国外UI设计素材网站,分别是:Iconfinder, Drib ...
- UX设计说-几分钟看懂UI设计是什么-百度UE讲堂-专题视频课程
UX设计说-几分钟看懂UI设计是什么-468人已学习 课程介绍 多年一线互联网的经验沉淀,凝练.系统的介绍了UI设计,交互设计和用户研究.让你能够整体的理解设计的本质,提高设计能力. ...
- 学UI设计得拥有哪些条件才能学会?
学UI设计得拥有哪些条件才能学会?学UI设计没有要求,任何人都可以学,不过,学UI设计必不可少的几点要素是:兴趣.审美能力.毅力等.只有对这行充满兴趣,才有学习的动力.不管基础怎么样,学习能力怎么样, ...
- 代码更换ui图片_用技术的方式,在UI设计稿中设置随机码,保证高清
本文首发于:行者AI 在工作中会遇到批量给图片添加文字,随机码等需求,当数据码数量较大时,UI的工作量就会非常大,这时候我们可以用python来帮我们提高工作效率. 1. 需求分析 我们有这样一张图片 ...
- 朱慕慕:ui设计包括什么内容,ui设计包括有几部分内容?
ui设计包括什么内容,ui设计包括有几部分内容?UI即User Interface(用户界面)的简称.UI设计是指对软件的人机交互.操作逻辑.界面美观的整体设计.优秀的UI设计不仅是让软件变得有个性有 ...
最新文章
- 1.5s~0.02s,期间我们可以做些什么?
- Cannot initialize a parameter of type ‘NSArray<id<RCTBridgeModule>> *‘ with an rvalue of type ‘NSArr
- Spring Boot中使用LDAP来统一管理用户信息
- 计算机二级python分值_计算机二级python考试难吗
- MySQL中的pid与socket是什么?
- 《深入理解Elasticsearch(原书第2版)》一2.2 查询改写
- python2 openpyxl 复制excel内容到新的excel文件中 告警问题
- 我们是如何做DevOps的?
- 【工业级串口服务器E810-DTU】RS485/RS232转以太网,双向透明传输
- 设置springboot日志级别_Spring Boot 日志框架实践
- HashMap面试指南
- 【报告分享】2021新中产人群洞察报告.pdf(附下载链接)
- sql查询初学者指南_面向初学者SQL Server查询执行计划–类型和选项
- python做excel表格代码_python读写Excel表格的实例代码(简单实用)
- mysql重复执行命令_mysql----------mysql的一些常用命令
- 基于Servlet的学生管理系统
- cron表达式及在线生成器
- iOS APP 运行时防Crash工具XXShield练就
- 摇一摇周边:微信是这样连接线下商户的
- 利用SUMIF和OFFSET+MATCH进行多条件求和
热门文章
- android手机连接无线路由器上网设置,手机如何设置无线路由器 手把手教你使用手机设置路由器...
- 苹果android怎么升级,苹果14.0.1系统怎么升级?苹果14.0.1系统升级的方法
- Docker切换国内镜像下载源
- ecplise使用android模拟器,Eclipse使用BlueStacks作为android模拟器
- Delphi FMX正确加载图片最大限度减少内存占用(之二TImageList)
- 中国天气网全城市代码weather_cityId
- Win11关闭Superfetch服务的操作方法分享
- 自助建站系统有什么优势
- 【操作系统学习笔记】—— 【一】操作系统概述
- 华硕飞行堡垒扬声器没声音_【华硕 飞行堡垒 FX63VD 笔记本电脑使用总结】显示器|扬声器|传输_摘要频道_什么值得买...