前言

前一篇 Unity3D 装备系统学习Inventory Pro 2.1.2 总结

基本泛泛的对于Inventory Pro 这个插件进行了讲解,主要是想提炼下通用装备系统结构和类体系。前两天又读了另一个插件 C# Inventory-uGui v2.0.1的源码(应该也是老外写的),对比了一下觉得还是和Inventory Pro有一定差距的(这个计划在另开一篇进行分析)。所以也就坚定了我更加细致的对于这个插件的学习。

补上一篇没有,贴出的功能展示图

问题求解

问题求解主要是我在学习中遇到的一些问题,希望能够得到明确的答案,如果有高手路过请不要吝惜你的答案。

问题1、本来在前篇中我准备截几张Inventory Pro的运行效果截图,结果失败了,后来发现是因为我copy了工程到另一个电脑上,结果运行就出现了问题,但是如果是新建工程就没有这个问题,请问为何?

问题2、关于属性监视器Inspector,自动生成c#组件中的字段问题,看了些科普,知道是自动可以在面板生成,也可使用一些特性HeaderAttrribute来实现Title什么的,但是这个在类继承体系中,很多分组中,显示顺序,显示名称等,其实要用一种默认的规则来运作(上帝模式),其实很多代码可读性就很差。不知道是否这样?

正文

Demo1的在工程中的位置

首先说一下Demo1的功能,其实很简单主要是建立起来Inventory Pro的运行环境,首先项目的Demo是3d的所以创建项目时,选择是3D工程。运行环境中,使用标准插件库建立一个第三方视角跟随的角色,角色可以在Panel中自由的移动跑跳;然后才是Inventroy Pro的基础配置,主要是引入Setting,在Setting中进行一些基础的配置。具体的运行后的界面如下图所示

这里对于我这种菜鸟来说,角色控制和第三方视角角色跟随看起来都挺难的,没有办法只能看了下标准插件的说明,装备系统也是在3D视角跟随角色的基础上完成的,下面简单说一下吧,老鸟请自觉忽略

角色操作和创建

按照插件说明角色创建很简单,就是首先创建一个Panel GameObject让角色可以在平面上跑,不至于掉下去,因为新手跑,跳是需要重力系统,捡拾也是需要物品在平面上,当然也有物理碰撞什么的,这里就不仔细说了。

第一步在Scene中添加一个Panel,然后把它设置大点,不然角色会掉下去

第二步,找到图中的角色prefab然后直接拖到场景中,reset一下即可

第三方视角相机跟随

第三方视角相机跟随,也是按照标准过程进行

第一步,删除原来的MainCarmar摄像机

第二步,从Asset中拖拽我们需要的Prefab到场景中来

第三步,设置相机的Target为我们的控制角色,这里拖拽即可

至此我们完成了第三方视角的角色跟随系统,是不是很简单,我想这个应该已经有无数人写过教程什么的,简单的发指。让我们又回到了Winform的年代工具栏直接拖拽即可,但是经验告诉我们这种上帝之手的模式,其实对新人是不利的,这里就废话不多说了,比较我们要研究的Inventory System,等以后再遇到了我们再研究吧。

最后是装备系统配置创建

基础环境创建好了,下面我们需要创建下装备系统的自身的基础环境了,涉及到了Srcript,Manage文件夹中的四大基础类

装备系统配置类,

装备系统管理类

Item管理类(工厂可能不准确,欢迎指正)

装备数据Asset类

Demo1中其实要实现的就两步

第一步,创建空游戏对象,配置InventorySetting类

第二步,初始化游戏Item数据Asset

总结

至此,Demo1的内容讲完了,对于老鸟来说其实什么也没有说,但对于Unity3D新手来说其实也是很好的基础学习,大概有以下内容

1、UGui 基本容器Canvs使用

2、标准角色创建

3、标准角色跟随摄像机

4、Inventory Pro 全局Setting使用

Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇的更多相关文章

  1. Unity3D 装备系统学习Inventory Pro 2.1.2 总结

    前言 写在最前面,本文未必适合纯新手,但有一些C#开发经验的还是可以看懂的,虽然本人也是一位Unity3D新人,但是本文只是自己在学习Inventory Pro的学习总结,而不是教程,本人觉得要读懂理 ...

  2. python学习笔记五 模块上(基础篇)

    模块学习 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要 ...

  3. Python学习笔记整理总结【语言基础篇】

    一.变量赋值及命名规则① 声明一个变量及赋值 #!/usr/bin/env python # -*- coding:utf-8 -*- # _author_soloLi name1="sol ...

  4. LDAP学习小结【仅原理和基础篇】

    此篇文章花费了好几个晚上,大部分是软件翻译的英文文档,加上自己的理解所写,希望学习者能尊重每个人的努力. 我有句话想送给每个看我文章的人: 慢就是快,快就是慢!!! 另外更希望更多人能从认真从原理学习 ...

  5. python学习笔记五 模块下(基础篇)

    shevle 模块 扩展pickle模块... 1.潜在的陷进 >>> import shelve>>> s = shelve.open("nb" ...

  6. python学习笔记一 python入门(基础篇)

    简单介绍一下python2.x和3.5的区别   print   在python3.5中print 变为print() Old: print * New: print( * ) 如果想要不换行,之前的 ...

  7. 深度学习:Keras入门(一)之基础篇

    1.关于Keras 1)简介 Keras是由纯python编写的基于theano/tensorflow的深度学习框架. Keras是一个高层神经网络API,支持快速实验,能够把你的idea迅速转换为结 ...

  8. HTML5学习--SVG全攻略(基础篇)

    明天高级篇 一.什么是SVG? SVG 指的是可伸缩矢量图形 (Scalable Vector Graphics),它用来定义用于网络的基于矢量的图形,使用 XML 格式定义图形.SVG 图像在放大或 ...

  9. 深度学习:Keras入门(一)之基础篇【转】

    本文转载自:http://www.cnblogs.com/lc1217/p/7132364.html 1.关于Keras 1)简介 Keras是由纯python编写的基于theano/tensorfl ...

随机推荐

  1. js动态加载以及确定加载完成的代码

    利用原生js动态加载js文件到页面,并在确定加载完成后调用相关function var otherJScipt = document.createElement("script") ...

  2. Oracle协议适配器错误解决办法

    在Oracle中新建了一个数据库,今天把它删了之后再登录SQL*PLUS就登不上去了,出现ORA-12560:TNS:协议适配器错误. ORA-12560: TNS: 协议适配器错误的解决方法 造成O ...

  3. iOS 两行代码解决数据持久化

    在实际的iOS开发中,有些时候涉及到将程序的状态保存下来,以便下一次恢复,或者是记录用户的一些喜好和用户的登录信息等等. 这就需要涉及到数据的持久化了,所谓数据持久化就是数据的本地保存,将数据从内存中 ...

  4. BZOJ2471 : Count

    考虑KMP,设$f[i][j][S]$表示还剩最低$i$位没有确定,目前KMP匹配到了$j$这个位置,前缀匹配情况是$S$,最终会匹配到哪里,中途匹配成功几次. 其中$S[i]$是一个pair< ...

  5. JavaScript创建对象

    最佳方式 原型模式与构造模式组合使用 先上代码: function Person(name,age,salary){ this.name = name; this.age = age; this.sa ...

  6. CSS的Hack技术

    主要是用来解决兼容性的特殊方法: IE都能识别*;标准浏览器(如FF)不能识别*: IE6能识别*,但不能识别 !important, IE7能识别*,也能识别!important,还有# FF不能识 ...

  7. daisy框架规划

    本框架的目的是建立一个标准化的.net core webapi 框架,利用.net core的性能和跨平台,提供高效的restful service(同时开发也会很高效). 主要组层: Daisy.c ...

  8. MySQL查询语句(select)详解(1)

    1.查询记录 select*from 表名 [where 条件];eg:select*from students;//查询 students 表中所有记录,所有字段的值都显示出来select fiel ...

  9. workspace路径有中文情况会报java.net.MalformedURLException: unknown protocol: d错误

    原因及描述:java读取xml文件时如果出现中文字符就会出现这类错误 解决方法:   1.将中文路径改为英文路径 2.读取file时"file:///d:/" 而不是"d ...

  10. css 温故而知新 定位(position)与权限(z-index)

    1.进行定位(position)的元素的权限(z-index)永远比没有定位的高. 2.如果两个元素都定位了,无论是相对定位还是绝对定位.他们的权限都是等权的. 3.两个相同定位的元素,除了z-ind ...