Unity3D
文章平均质量分 73
heyuchang666
这个作者很懒,什么都没留下…
展开
-
游戏开发基础数据结构
据我所接触到的国内游戏公司,包括我们自己公司在内,游戏数据大都是基于 excel 这种二维表来表达的。我把它称为 csv 模式。这种模式的特点是,基础数据结构基于若干张二维表,每张表有不确定的行数,但每行有固定了列数。用它做基础数据结构的缺陷是很明显的,比如它很难表达树状层级结构。这往往就依赖做一个中间层,规范一些使用格式,在其上模拟出复杂数据结构。转载 2017-07-20 18:16:26 · 1006 阅读 · 0 评论 -
Ulua_toLua_基本案例(一)
在Untiy中用Lua,必须要LuaInterface。可以先光写Lua,生成.lua的纯文件。再Unity中通过,luaState.DoFile("main.lua");来运行。也可以直接在C#中写。用Lua.DoString()来转换。大量项目的话,还是分开写好,lua用LuaStudio来开发。原创 2016-02-27 15:12:42 · 3229 阅读 · 3 评论 -
LuaInterface简介
Lua是一种很好的扩展性语言,Lua解释器被设计成一个很容易嵌入到宿主程序的库。LuaInterface则用于实现Lua和CLR的混合编程。(一)Lua from the CLR(1)CLR中不能自动匹配Lua类型的对象(以上基础类型之外的类型)传给Lua时,转换为userdata,当Lua把这些userdata传回给CLR时,这些userdata又转换回原类型对象;(2)Lua里面生成的userdata从Lua传到CLR时转换为LuaInterface.LuaUserData。(二)CLR fro原创 2016-02-23 14:09:53 · 3435 阅读 · 0 评论 -
UGUI(九)摄像机渲染纹理
以前在项目中弄过摄像机渲染纹理,现在再来整理下思路。渲染纹理在游戏中的运用非常常见,比如任务对话框上的3DNPC模型显示,角色装备栏中玩家的3D模型显示等。在Unity中实现这个功能非常容易1.创建一个临时纹理RenderTexture2.新建一个单独的摄像机(可称为photo摄像机),将目标纹理设置为临时创建的纹理3.将临时创建的纹理赋值给UI上的纹理组件原创 2016-03-10 11:43:33 · 1440 阅读 · 1 评论 -
UGUI(十)_无限循环列表
循环列表其实是针对列表组件的优化,如果有1000条数据普通列表会创建1000个item,这样在打开或关闭界面时会有很明显的卡顿现象。而且这种功能自己尝试写一写是很好的事情。图中显示到1000条数据的位置,但是注意红框中的item个数它只有11个,所以界面打开关闭也不会有明显的卡顿,原理并不复杂,当滑动条向下滑时,第一个超过显示区域时就移动到最下面;当滑动条向上滑时,最后一个超过显示区域就移动到最上面,然后从数据集合中取出数据进行显示,如此循环即可。原创 2016-03-10 11:53:56 · 6477 阅读 · 1 评论 -
UGUI(八)_资源下载之Icon
说起icon相信大家都不陌生,如果是页游icon会做成动态下载,其实其他平台也是如此,需要单独给一组icon打包,然后游戏载入时根据类型和文件名加载图片。如果你在学习UGUI相信也接触过NGUI,NGUI制作的图集作为prefab存在工程目录下,我们直接写打包工具就可以,而且游戏载入图集资源和显示时,在Game下也只是占用一个DrawCalls,这样挺好。 但是UGUI却不一样,合成之后的图集不会以文件的形式存在工程目录下,这时我们就不能和NGUI一样对一个parfab进行打包,是不是很纠结?但是我们还原创 2016-03-10 11:14:45 · 1021 阅读 · 0 评论 -
UGUI(七)_UI节点制作
游戏开发中UI是由各种基本或者高级组件组合而成,UGUI,NGUI也是如此,不过它们是在可视化过程中进行制作,开发效率会很快。 以前用的NGUI只有一个UIRoot作为UI的父节点,能设置一些UI整体缩放类型,比如原始大小,自动适应等,还有它必须有一个UI摄像机带上UICamera组件,里面封装了各种操作事件等。 而UGUI的选择更多了,它的Canvas中可以直接设置UI在屏幕空间【最普通的界面】,或者在屏幕空间的摄像机上【控制UI摄像机更自由,类似NGUI】,还有就是在世界空间【3D界面】。原创 2016-03-09 21:34:07 · 1430 阅读 · 0 评论 -
UGUI(四)_官方案例—下载
UGUI官方案例—下载,喜欢的同学可以看看,本人觉得不错原创 2016-03-03 19:34:14 · 4652 阅读 · 0 评论 -
UGUI(六)_界面拖动和焦点界面
UGUI的官方例子中有实现拖动的脚本DragPanel,不过它没支持界面排序,加个排序很简单,在按下鼠标时调用tranform的SetSiblingIndex即可,值越大越靠前,在这里我只是简单的实现了这个基本功能,最终用到项目是需要设计一下的,因为很多时候需要记录打开界面的一些信息,在这里就不多说了。原创 2016-03-09 19:40:50 · 1786 阅读 · 0 评论 -
Unity_UGUI(五)_动画系统
Unity暂时没有单独给UGUI提供动画系统,用官方的动画系统也能做只是比较麻烦,所以我们有很多选择了。1.修改NGUI的UITweener在用UGUI上,轻量级动画系统。2.使用第三方插件入iTween,DoTween,HOTween等。 发现DoTween不错,就试试了。先来看效果图:这里用到了位置,旋转,缩放,颜色四个最主要的动画效果,暂时简单写一个例子,以便以后使用时查阅。下载地址和详细使用说明如下。原创 2016-03-07 11:54:54 · 4547 阅读 · 0 评论 -
Ulua_toLua_基本案例(二)_ScriptsFromFile
在Untiy中用Lua,必须要LuaInterface。LuaInterface的介绍请看:点击打开链接可以先光写Lua,生成.lua的纯文件。再Unity中通过,luaState.DoFile("main.lua");来运行。也可以直接在C#中写。用Lua.DoString()来转换。大量项目的话,还是分开写好,lua用LuaStudio来开发。原创 2016-02-27 15:21:49 · 1837 阅读 · 1 评论 -
Ulua_toLua_基本案例(三)_CallLuaFunction
在Untiy中用Lua,必须要LuaInterface。可以先光写Lua,生成.lua的纯文件。再Unity中通过,luaState.DoFile("main.lua");来运行。也可以直接在C#中写。用Lua.DoString()来转换。大量项目的话,还是分开写好,lua用LuaStudio来开发。原创 2016-02-27 15:24:23 · 4454 阅读 · 1 评论 -
Unity渲染路径 Rendering Paths_1_Deferred Lighting 延时光照
延时光照是有着最高保真度的光照和阴影的渲染路径。如果你有很多实时灯光,最好是使用延时光照。它需要一定水平的硬件支持,仅在 Unity Pro可用,移动设备上不支持。 延迟光照是一种当前最高级的能实现光线和阴影保真的渲染路径1.完全采用以每像素的方式评估光线,这等于意味着全部将以正常贴图的方式正确的和物体交互2.所有光线都能拥有信息缓存3.所有的光线都能产生阴影4.对于能影响任何物体的光线数量没有上限原创 2016-06-02 11:18:14 · 3730 阅读 · 0 评论 -
Unity中MonoDevelop字体颜色的修改
用MonoDevelop开发Unity时,可以适当调一下颜色保护下视力。[Tools]->[Options]->[Text Editor]->[Syntax Highlighting] ,可以选择默认的几种,也可以自己设置,自己设置的话需要,先New一个新的之后再进行编辑,例如我新建的取名为style:comments 注释,line comments 行注释,block comments 块注释,doc comments doc注释comments tags 注释标签,想要改一般注释的话,可以改l原创 2016-10-21 11:55:35 · 5741 阅读 · 0 评论 -
Unity_二维纹理 Texture 2D_4_总结细节
Unity支持下面的文件格式:PSD, TIFF, JPG, TGA, PNG, GIF, BMP, IFF, PICT。应注意,Unity可以导入多层PSD和TIFF文件,在导入时,层将自动被塌陷,因此你不必浪费时间,直接使用源文件类型。这Texture Sizes 纹理大小 这些尺寸如下:2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 或 2048像素。纹理可不必是正方形,即宽度和高度可以不同。点很重要,允许只有一个纹理拷贝,使用从Photoshop,三维原创 2016-06-06 11:49:33 · 2922 阅读 · 0 评论 -
Unity_二维纹理 Texture 2D_3_按平台覆盖
当你在不同的平台构建(游戏),你必须考虑为目标平台决定你的纹理,尺寸和质量。使用Unity3,你可以覆盖这些选项,并根据你要部署的平台指定具体的值。注意,当你构建项目时,如果你没有选择任何值覆盖,编辑器会选择默认值。除非你是针对一个特定的硬件,像Tegra,我们建议你使用ETC1压缩。如果需要可以储存额外的alpha通道并仍能得到较低的纹理占用空间。如果你一定要储存alpha通道在纹理中,RGBA16位是所有的硬件厂商所支持的压缩。 如果你的应用程序采用一个不支持的纹理压缩,纹理将解压到原创 2016-06-06 11:04:35 · 2142 阅读 · 0 评论 -
Unity_二维纹理 Texture 2D_2_高级纹理
Non Power of 2 不是2的幂:如果纹理大小不是2的幂,这将定义在导入时的缩放行为(更多信息请参阅下文纹理尺寸部分): None 无:纹理将被填充到下一个较大的2的幂大小以便与GUI纹理组件使用。(真别扭!) To nearest 到最近的:纹理在导入时将被缩放到最近的幂大小。例如257x511纹理将成为256x512。请注意,PVRTC格式要求纹理是正方形(宽度与高度相等),因此最终大小将变换到512x512。 PVRTC是一种有损的纹理压缩技术,主要用于iPhone,iPod原创 2016-06-06 10:26:01 · 3582 阅读 · 0 评论 -
Unity_二维纹理 Texture 2D_1_Properties 属性
纹理使你的网格、粒子、和界面更生动!它们是你覆盖或环绕着对象的图片或影片文件。由于它们是如此的重要,它们有很多的属性。如果你是第一次阅读这一点,跳到细节,当你需要一个参考时返回到实际设置。 用于对象的着色器可以指定所需要的纹理,但基本原则是可以放置项目中任何图像文件。如果它符合尺寸要求(见以下说明),它将会被导入并优化。对于多层Photoshop文件或TIFF文件——它们在导入过程中被塌陷合并,所以对于游戏没有不利影响。原创 2016-06-05 15:16:03 · 2465 阅读 · 0 评论 -
Unity渲染路径 Rendering Paths介绍
Unity支持不同的渲染路径。应具体取决于你的游戏内容和目标平台/硬件来选择使用哪一个。不同的渲染路径有不同的特点和性能特点,主要影响灯光和阴影。 项目所使用的渲染路径在Player Settings选择。此外,可以为每个摄像机重写(不同摄像机可以是不同的设置)。如果图形卡不能处理选定的渲染路径,Unity将自动使用一个较低保真度的设置。因此,在GPU上不能处理延迟照明(Deferred Lighting),将使用正向渲染(Forward Rendering )。如果不支持正向渲染(Forwa转载 2016-06-02 11:09:31 · 2964 阅读 · 0 评论 -
升级Unity5-----Unity5灯光烘焙与Unity4 灯光烘焙实际应用中的差别
Skybox:会直接影响你的环境光Ambient Source:环境源,这里选 的skyboxAmbient Intensity: 环境光的强度值,也就是环境光的亮度值Reflection Source:反射源,这是Unity4.X里没有的。烘焙后会在场景文件的同名文件夹中多出一个名为 LightmapSnapshot的文件。Realtime Resolution:实时分辨率,这个物体所产生的GI对其它物体的影响程度,值越大影响越大。原创 2016-06-24 16:27:21 · 4872 阅读 · 0 评论 -
Unity渲染路径 Rendering Paths_2_Forward Rendering 正向渲染
正向渲染一个基于着色器的渲染路径。它支持逐像素计算光照(包括法线贴图和灯光Cookies)和来自一个平行光的实时阴影。在默认设置中,少数最亮的灯光在逐像素计算光照模式下渲染。其余的灯光计算对象顶点的光照。 根据影响物体的光源的不同,正向渲染路径用单个或多个通道来渲染物体。在正向渲染中,光源本身也会根据他们的设置和强度受到不同的对待。原创 2016-06-02 11:41:57 · 3517 阅读 · 0 评论 -
Unity渲染路径 Rendering Paths_3_Vertex Lit 顶点光照
顶点光照(Vertex Lit) 是最低保真度的光照、不支持实时阴影的渲染路径。最好是用于旧机器或受限制的移动平台上。1.顶点照明渲染路径通常在一个通道中渲染物体,所有光源的照明都是在物体的顶点上进行计算的。2.顶点照明渲染路径是最快的渲染路径并且有最广泛的硬件支持(然而,请记住:它无法工作在游戏机上)。3.由于所有的光照都是在顶点层级上计算的,此渲染路径不支持大部分的逐像素渲染效果:如,阴影、法线贴图、灯光遮罩、高精度的高光原创 2016-06-02 11:29:13 · 2832 阅读 · 0 评论 -
在Unity中使用Lua脚本:语言层和游戏逻辑粘合层处理
为什么非要在Unity里面用Lua呢?原因:方便做功能的热更新;Lua语言的深度和广度都不大,易学易用,可以降低项目成本。转载 2016-02-22 11:25:49 · 1951 阅读 · 0 评论 -
Unity中Json创建,解析
我用的是LitJson.dll,JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 Json创建中writer.WriteObjectStart ();就等同于“{”,writer.WriteObjectEnd ()就等同于“}”,最后要转换成string型,json = writer原创 2016-01-14 23:43:28 · 6081 阅读 · 3 评论 -
插值原理—线性,球面插值 ,四元数
3D空间中,在等长度的两个交角为theta的向量v1(x1,y1,z1),v2(x2,y2,z2)之间进行球面线性插值。1。一般线性插值:我们知道一般两个量之间进行线性插值的方法为:v(t) = v1 + t*(v2-v1)(0<=t<=1)(因为t是一次方的,所以是线性的。)2。一般球面线性插值:将一般线性插值得到的结果乘以放大系数k(t),使其长度放大到|v1|或|v2|,即得保持向量长度不变的插值:v(t) = k(t)*(v1 + t*(v2-v1))其中k(t) = |v1|/|v(原创 2016-03-16 21:23:08 · 10950 阅读 · 0 评论 -
Unity基础—射线概念和API
射线:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。用途:射线应用范围比较广, 多用于碰撞检测(如:子弹飞行是否击中目标)、角色移动等 等。原创 2015-09-17 15:03:56 · 1533 阅读 · 0 评论 -
Unity3D游戏开发-模仿项目一 第一人称角色射击(有源代码)
第一人称射击类游戏,FPS(First-person Shooter), 严格来说第一人称射击游戏属于ACT类游戏的一个分支,但和RTS类游戏一样,由于其在世界上的迅速风靡,使之发展成了一个单独的类型。英文名:FPS (First-person Shooter)第一人称视角射击游戏顾名思义就是以玩家的主观视角来进行射击游戏。玩家们不再像别的游戏一样操纵屏幕中的虚拟人物来进行游戏,而是身临其原创 2015-06-06 23:02:41 · 14482 阅读 · 13 评论 -
游戏开发团队及工作流程
游戏策划是游戏开发公司中的一种职称,是电子游戏开发团队中负责设计策划的人员,是游戏开发的核心。主要工作是编写游戏背景故事,制定游戏规则,设计游戏交互环节,计算游戏公式,以及整个游戏世界的一切细节等。游戏主策划:又称为游戏策划主管。游戏项目的整体策划者,主要工作职责在于设计游戏的整体概念以及日常工作中的管理和协调。同时负责指导策划组以下的成员进行游戏设计工作。游戏系统策划:又称为游戏规则设计师。一般主要负责游戏的一些系统规则的编写,系统策划和程序设计者的工作比较紧密。例如组队、战斗、帮派、排行榜、好友等系原创 2015-09-16 17:55:48 · 11394 阅读 · 1 评论 -
Unity开发—简单的RPG游戏
角色扮演游戏(Role-playing game),简称为RPG。游戏类型的一种,宽泛的游戏类型。在游戏中,玩家负责扮演这个角色在一个写实或虚构世界中活动。玩家负责扮演一个或多个角色,并在一个结构化规则下通过一些行动令所扮演的角色发展。玩家在这个过程中的成功与失败取决于一个规则或行动方针的形式系统(Formal system)。这只是个简单的Demo,有登陆,主页场景,战斗场景。原创 2015-09-17 13:36:37 · 6184 阅读 · 8 评论 -
Unity3D性能优化之角色建模
Unity3D性能优化之角色建模使用一个单一的Skinned Mesh Rendere应该对于每个角色仅使用一个skinned mesh renderer。Unity使用可见性裁剪和包围体更新的方法来优化角色的运动,并且这些优化只有在您使用一个运动组件和一个skinned mesh renderer时才会被激活。如果在一个网格的位置使用了两个蒙皮网格,那么该模型的渲染时间将变成原来的两转载 2015-08-31 11:55:11 · 1098 阅读 · 0 评论 -
Unity3D物理性能优化
首先,可以调整的固定的时间步长设置(在时间管理器内)来减少物理更新上花费的时间。增加时间步长将减少花费在物理准确性上的CPU开销。通常,较低的精度是提高速度的、可接受的折中办法。在时间管理器重设置最大允许的时间步长为8-10fps,来限定最坏情况下的物理花费时间。原创 2015-08-31 11:58:23 · 1660 阅读 · 0 评论 -
Unity3D介绍
Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专游戏引擎。Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、Windows phone 8和An原创 2015-07-10 09:29:07 · 1857 阅读 · 0 评论 -
十大游戏开发引擎
游戏引擎作为开发商研发游戏时必备的工具,每一款引擎的运用都关乎自家大作未来的销量,所以游戏商们对引擎的选择也非常小心翼翼。现在,手游、页游等新兴平台的表现又非常强势,所以选择正确的游戏引擎变得尤为重要。Unity3D Unity3D对于游戏开发者们来说是一个真正可以负担的起的引擎,具有其他引擎难以匹敌的用户量。更为重要的是,你只需要付费一次,而且,不管你的游戏如何成功,都不用转载 2015-07-10 09:41:59 · 13714 阅读 · 0 评论 -
Unity3D面试题(全)
第一部分1.请简述值类型与引用类型的区别2.C#中所有引用类型的基类是什么3.请简述ArrayList和List<Int>的主要区别4.请简述GC(垃圾回收)产生的原因,并描述如何避免?5.请描述Interface与抽象类之间的不同6.下列代码在运行中会产生几个临时对象?7.下列代码在运行中会发生什么问题?如何避免?8.请简述关键字Sealed用在类声明和函数声明时的作用9.请简述p...原创 2015-07-09 20:44:11 · 4080 阅读 · 0 评论 -
Unity游戏开发—休闲类(有源代码)
挑战你的射击能力的时候到啦!摆好易拉罐,在一定距离上用石头投掷罐子,童鞋有没有这种经历呢?一起来比赛吧。一款有趣的射击罐子游戏,游戏仿照现实模式,你可以从各个方位射击,还可以手动调整难度增加更多的分数,喜欢的童鞋快来挑战下吧。原创 2015-09-17 13:47:55 · 2084 阅读 · 0 评论 -
Unity+NGUI性能优化方法总结
游戏中会有很多地方使用同一份资源。比如,有些界面会共用同一份字体、同一张图集,有些场景会共用同一张贴图,有些会怪物使用同一个Animator,等等。可以在制作游戏安装包时将这些公用资源从其它资源中分离出来,单独打包。比如若资源A和B都引用了资源C,则将C分离出来单独打一个bundle。在游戏运行时,如果要加载A,则先加载C;之后如果要加载B,因为C的实例已经在内存,所以只要直接加载B,让B指向C即可。如果打包时不将C从A和B分离出来,那么A的包里会有一份C,B的包里也会有一份C,冗余的C会将安装包撑大;并且转载 2015-11-11 23:10:27 · 841 阅读 · 0 评论 -
Unity3D播放视频
Unity支持的播放视频格式有.mov、.mpg、.mpeg、.mp4、.avi和.asf。只需将对应的视频文件拖拽入Project视图即可,它会自动生成对应的MovieTexture对象。如下图所示,MOMO将default_video.mp4拖拽入Project视图中,如果视频中含有音频的话会对应生成audio文件,因为我的视频没有音频所以没有生成 audio文件。接着在Hierarchy视图中创建一个Plane对象视频将在它之上播放,Directional light世界定向光用于照亮整个游戏场景,最原创 2015-11-14 23:09:38 · 719 阅读 · 0 评论 -
Unity_UGUI判断鼠标或者手指是否点击在UI上(三)
比如战斗场景,UI和3D场景同时都需要响应触摸事件,如果同时响应可能就会出现触摸UI的时候影响到了3D部分。为了解决这个问题在判断3D响应之前要先判断手指是否点击在UI上。 以前NGUI的时候都是自己来发送射线判断,现在UGUI好了系统提供了更为简便的方法。转载 2016-02-17 17:58:52 · 5101 阅读 · 0 评论 -
Unity_UGUI研究院之UI的深度学习(二)
UGUI真是好的不得了。以前用NGUI的时候UI的深度就是一个指定的数值,数值越大越靠前,尤其在布复杂界面的时候,深度值不知道怎么填非常恶心。现在有了UGUI这问题即可迎刃而解呀~如下图所示,Red图片在Blue图片前面,在看看Hieraychy视图,因为Blue在Red的上面,所以优先渲染Blue,然后是Red。那么Blue就在Red的上面了。。UGUI深度和在Hierarchy中的位置有关,位置越靠前的,深度值越小,显示渲染的位置越靠后。转载 2016-02-17 17:19:01 · 1448 阅读 · 0 评论 -
Unity_UGUI学习图集与使用(一)
UGUI的Atlas和NGUI的Atlas的区别,NGUI是必须先打出图集然后才能开始做界面。这一点很烦,因为始终都要去考虑你的UI图集。比如图集会不会超1024 ,图集该如何来规划等等。而UGUI的原理则是,让开发者彻底模糊图集的概念,让开发者不要去关心自己的图集。做界面的时候只用小图,而在最终打包的时候unity才会把你的小图和并在一张大的图集里面。然而这一切一切都是自动完成的,开发者不需要去care它。一定要打包才可以。转载 2016-02-17 16:36:28 · 4676 阅读 · 1 评论