道具系统设计 2道具的设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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(); } } 这段代码

文档评论(0)

lufeng10010 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档