- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
?
????? 好了,言归正传,我们正式开始道具系统的设计,第一部分将会是核心系统(code)的设计部分,这个部分将会分成2个部分,道具和道具管理器。顾名思义,所以不多解释了。我们马上开始道具的设计。????? 首先,打开你的unity,然后使用现有的或新建工程,然后在Project中,新建一个C#脚本,重命名为:Item_Profile。?文章来自【狗刨学习网】
?
??????? 在正式编码之前,我们需要了解我们的需求,我们需要设计出什么样子的道具,道具的种类,道具之间的共享属性等等,一般的做法是,设计一个父类,然后根据不同的道具种类需求,然后派生出不同的道具出来,例如Item下派生出Weapon,Armor,Bomb等等,然后你会发现,你会派生出N多个类出来。而作为独立制作人,我们(请允许我加入你们的队伍里)的通常的做法是,边设计,边编码,然后再设计,再编码,所以,在实际开发中,你会发现,需求在不断的变化,如果真的派生出这么多类出来,肯定要疯掉了,所以,小弟的设计是,将所有属性写在同一个类中,然后根据实际需求,来选择性读写某些属性。这两种做法各有优略,而单一类最大的优势就是,懒!
?????? 好了,说了半天,其实就是懒,OK。现在打开刚才的新建的 Item_Profile 文件,然后开始编码
?
using UnityEngine;using System.Collections;using System.Collections.Generic;[System.Serializable]public class Item_Profile : MonoBehaviour{}
作为道具的一员,之间肯定有某些共同的元素,例如名字,买卖价格,稀有程度等等。所以,我们首先要设计的是这些共同的元素。item_id? ?? ???ID,这个ID有系统自动分配,所以不需要对齐作出设计,保留为public,只是为了方便查看而已。icon? ?? ?? ?? ??2D图标。comment? ?? ?道具的描述。type? ?? ?? ?? ? 道具类型,武器或护甲之类的。rare? ?? ?? ?? ? 稀有度。color? ?? ?? ?? ?颜色,关联稀有度,白色到紫色之类的可视化等级。buy,sell? ?? ???买卖价格。limit_stack? ? 堆栈上线,例如20个一组的面包,或且无法叠加的武器或护甲。model? ?? ?? ???3D模型。
weapon_type? ?武器的类型,单手剑或双手剑。damage? ?? ?? ???攻击力,物理攻击或各种元素攻击。damage_r? ?? ???攻击力的波动范围。
?
接着就是护盾和护驾的设计了,将他们放一起,是因为他们都属于防具,属性都一样。clan? ?? ?? ?? ?? ???种族,精灵或且兽人,如果装备有指定种族的话,这个属性能帮上忙。armor_type? ?? ?护甲类型,头部,手部还是护盾。def? ?? ?? ?? ?? ?? ?防御力,各种元素防御力。
?
parts? ?? ?? ?? ?? ? 合成所需的道具及数量。这里可能大家会有个疑问,为什么不用item_id 而要使用 Item_Profile 来关联道具,这个问题在设计道具管理器的时候会有解释。final_product? ???终于的合成品。
/learn/tutorials/modules/beginner/editor。OK,新建一个C#脚本,并重命名为:Item_Profile_Editor。?
?
// 这里是需要改变指定的类在Inspector中的布局,这里我们需要改变的类就是Item_Profile。[CustomEditor(typeof(Item_Profile))] public class Item_Profile_Editor : Editor {void OnEnable () {}// 这个函数,看名字就觉得很NB,这个就是在编辑状态下,Inspector的GUI的布局。public override void OnInspectorGUI (){// target是Editor里的一个属性,指的就是我们需要改变的那个类,这里做强转换,不解释。Item_Profile item = target as Item_Profile;// 序列化更新,不解释。serializedObject.Update();// Add your code here.// ……// 更新编辑后的数据。serializedObject.ApplyModifiedProperties();}}
这段代码
您可能关注的文档
最近下载
- 焊接方法与设备使用教学作者曹朝霞齐勇田主编其他焊接方法.pptx VIP
- 医院培训课件:《高警示等特殊药品管理规范》.pptx
- 2024年小微企业和个体户税收最新优惠政策宣讲培训课件(增值税小规模纳税人新政、“六税两费”减免、小微企业减免企业所得税、个体工商户减半征收个人所得税政策等内容)).docx
- 专升本《招投标与合同管理》教案.ppt VIP
- 中考物理专题2比热容易错分析(解析版).docx VIP
- 项目部综合办公室年度工作总结.docx VIP
- 教师数学教学经验分享精品课件.pptx VIP
- 重庆市渝中区2023-2024学年三年级下学期期末语文试卷(含答案).pdf VIP
- ZZ042 数字艺术设计赛题赛题-2023年全国职业院校技能大赛拟设赛项赛题完整版(10套).docx VIP
- (统编版2024版)七年级历史新教材新变化及教学建议 课件.pptx
文档评论(0)