Unity
文章平均质量分 75
liuhaopen
这个作者很懒,什么都没留下…
展开
-
Unity2018 ECS框架Entities源码解析(三)ComponentDataArray的实现
一个普通的System大体是这样的:public class SampleSystem : ComponentSystem{ public struct Data { public readonly int Length; public ComponentDataArray<A> As; public Compon...原创 2018-12-23 21:28:00 · 8597 阅读 · 1 评论 -
Unity2018 ECS框架Entities源码解析(四)System注入组件信息
我们上章谈过ComponentSystem需要为注入的字段找到符合条件的Archetype链表(m_FirstMatchingArchetype),有两种实现方式,一是每次Update前都遍历所有Archetype找一次,这样简单粗暴但过于低效;复杂点的是做法二,在创建好System时就找一次,之后有新的Archetype创建时就判断一下是否满足条件,是则加进来。我们先从最简单的例子看起:...原创 2018-12-28 10:23:02 · 7498 阅读 · 2 评论 -
在windows上编译PC和Android平台的xlua库(并加入第三方lua库lpeg,sproto,lua-crypt)
添加第三方库:因为在项目里需要用到其它的lua库如lpeg,sproto,lua-crypt,所以要把它们编译进xlua里.复制几个库的源码到xlua/build目录里,然后按xlua官方教程(XLua增加删除第三方lua库)那样,先安装cmake,然后在xlua/build/CMakeLists.txt文件里添加几个库的引用如:编译windows平台的库:本来在CMakeLi...原创 2018-10-10 10:04:48 · 12589 阅读 · 3 评论 -
Unity2018 ECS框架Entities源码解析(二)组件与Chunk的内存布局
为了性能考虑,所有Entity里的组件数据都会存放在被称为Chunk的连续内存空间里,因为cpu访问某内存时会顺便加载附近的一段数据,所以数据的连续存放有利于提高缓存命中。当然,并不是所有的A组件的值都放在同一个Chunk里的,Chunk是按EntityArchetype分配的。EntityArchetype核心是Archetype类,其实就是一个组件的数组,拥有相同组件集合的Entity指向...原创 2018-12-20 16:43:03 · 12069 阅读 · 2 评论 -
Unity2018 ECS框架Entities源码解析(一)框架的启动与循环
本文主题:ECS框架的启动和循环,System的OnUpdate函数在哪里被调用,运行时disable一个System先上个简约版的类图:World:保存着一个EntityManager和一堆ComponentSystem,默认情况下游戏启动时会为我们创建一个World并通过反射把所有的ComponentSystem类加进去。你要定义多个World也可以,像守望先锋那样有个普通游戏时的...原创 2018-12-07 11:28:58 · 13188 阅读 · 7 评论 -
Unity Profiler中常见的WaitForTargetFPS、Gfx.WaitForPresent 和 Graphics.PresentAndSync
原文地址:扒一扒Profiler中这几个“占坑鬼”WaitForTargetFPS、Gfx.WaitForPresent 和 Graphics.PresentAndSync是我们经常会被问到的参数。想必正在读此文的你也经常在Profiler中遇到过这几项CPU开销过大的情况。对此,我们今天就来好好地聊一聊这几个参数的具体含义和触发规则。WaitForTargetFPS该参数一般出现在CPU开销过低...转载 2018-02-28 11:49:38 · 10628 阅读 · 0 评论 -
Unity手游开发札记——布料系统原理浅析和在Unity手游中的应用
原文地址:Unity手游开发札记——布料系统原理浅析和在Unity手游中的应用0. 前言项目技术测试结束之后,各种美术效果提升的需求逐渐成为后续开发的重点,角色效果部分的提升目标之一便是在角色选择/展示界面为玩家提供更高的品质感,于是可以提供动态效果的布料系统就作为了技术预研的方向。笔者在之前的端游项目中有较多使用布料系统制作布料效果的经验,这次也尝试了在Unity引擎中进行布料效果制作的几种方法...转载 2018-02-08 09:52:34 · 7300 阅读 · 0 评论 -
Unity渲染教程(十九):图形处理器的实例化技术
原文地址(推荐其系列文章):Unity渲染教程(十九):图形处理器的实例化技术译者:崔嘉艺(milan21)审校:王磊(未来的未来)渲染一大堆的球体。添加对图形处理器实例化技术的支持。使用材质属性块。让实例化技术和LOD组一起工作。这是关于渲染基础的系列教程的第十九部分。在前面的部分里我们涉及了全局光照,体积探测器还有LOD组转载 2018-02-06 10:37:26 · 9036 阅读 · 0 评论 -
Unity3d-MMO游戏优化经验分享沙龙总结
原文地址:MMO游戏优化经验分享沙龙总结昨天去上海参加了UWA公司的张鑫和张强进行了一场关于MMO游戏开发和性能优化的沙龙,活动链接为:UWA优化日上海站|传统MMO手游性能该如何突围?。虽然第二场场景分块加载部分的内容没有预期中对目前的项目那么有帮助,再加上最后因为赶火车没有听完Q&A的环节就离开了(然而还是没有赶上火车,此中悲苦就不提了。。。),有些疑问没有提出来讨论,略有遗憾,但对于...转载 2018-02-10 09:36:39 · 9057 阅读 · 0 评论 -
重建 是UGUI优化的关键 -- Unite2017嘉宾杨怀忠分享《UGUI深度优化》
原文地址:重建 是UGUI优化的关键 -- Unite2017嘉宾杨怀忠分享《UGUI深度优化》关于UniteUnite大会是由Unity举办的全球开发者大会,至今已有10年的历史。Unite现已成为游戏行业,VR/AR行业中最具有权威性和影响力的活动。 杨怀忠:前面几位同事有点拖堂了,所以我可能今天讲的速度会快一点。我今天跟大家分享的是UI方面的经验。我先介绍一下UI的基础知识,会稍微提一下UI...转载 2018-02-09 10:08:00 · 10850 阅读 · 2 评论 -
轩辕传奇场景优化笔记
原文:轩辕传奇场景优化笔记推荐作者的知乎专栏:MACK的游戏开发笔记最近在做一些优化相关的内容,每个版本的性能review。顺便翻了翻以前的优化笔记,找到了一篇写的还算正式的笔记。13年的工作生涯大半时间都在做渲染和优化相关的内容,优化这东西真的是扁鹊三兄弟的故事,只有痛了才知道它的重要性,而当它不是问题的时候却很少有人会注意到它。目的和需求:客户端安装包过大,玩家下载不方便,希望能减少安装包容量...转载 2018-02-03 10:46:26 · 6214 阅读 · 0 评论 -
unite2017《Unity企业级支持案例与分析》
在今天举办的Unite2017开发者大会上,Unity大中华区技术支持总监张黎明以“Unity企业级支持案例与分析”为主题进行了分享。以下为演讲实录:张黎明:非常感谢大家来参加今年的Unite,其实我现在看到有的朋友已经不是第一次来参加Unite,我是第三次站在Unite讲台上面,感到非常荣幸。今天的题目是Unity企业级支持案例与分析,我们Unity在中国的业务已经开展五年时间了,最近一两年时间...转载 2018-01-15 14:03:55 · 6352 阅读 · 0 评论 -
在U3D中实现战争迷雾
原文地址:在U3D中实现战争迷雾一、简介RTS类型的游戏经常用到战争迷雾。一开始整个地形被迷雾遮蔽,只有Viewer的周围一定范围可见,随着Viewer的移动,未探索的区域变成了可见。二、实现方法本人之前也没有实现过战争迷雾,但是一提到战争迷雾,我的第一反应是用RenderTexture来实现,几乎所有运算都是在屏幕空间中进行,绘制出迷雾Texture后,再用Projecter将迷雾Texture...转载 2018-02-19 09:28:27 · 13505 阅读 · 4 评论 -
Unity游戏中的图形渲染优化
Unity游戏中的图形渲染优化 转载自:Unity游戏中的图形渲染优化 技术文章翻译 原文链接 Unity官方教程中的一篇文章,虽然讲得不深,但是比较系统全面,对寻找问题,优化性能还是有帮助的,分享给大家把。英语渣,翻译有啥不对的地方,欢迎指正。 简介 在这篇文章中,我们将学习:在Unity渲染一帧画面背后发生的事;在渲染过程中可能发生的 一些性能问题以及如何去解决这些和渲染相关的性能问题。在阅读...转载 2018-02-20 10:29:48 · 14574 阅读 · 1 评论 -
Unity编辑器扩展-制作界面时引入外部的参考图
一般做界面,我们按美术出的图,那里拉个按钮,那里弄个文本,其坐标大小比例等肯定要严格按美术出的图来调节的,所以编辑界面时最好就有张参考图,添加方式如下:参考图的资源可来自项目外的目录,添加后,可以选中它后右键菜单->锁定,这样就不会碍着你了.关于在Scene视图显示右键菜单可以见:Unity编辑器扩展-在Scene视图添加右键菜单实现主要分三步:1弹出选择文件的界面,2选中某图片文件后加载成...原创 2018-04-03 19:55:10 · 12041 阅读 · 0 评论 -
Unity Shader-死亡溶解效果
简介原文地址:Unity Shader-死亡溶解效果游戏里面角色死亡的时候,有很多方式可以表现人物死亡效果。最简单粗暴的,播放完死亡动画直接删除或者直接Y轴逐渐降低,沉到地下;比较好的死亡效果就是今天要研究的这种效果-死亡溶解。个人印象比较深刻的就是《生化危机6》里面的克里斯篇,里面的功夫丧尸挂掉之后都是会有一个类似的死亡溶解效果。不过《生化危机6》这种3A大作的效果肯定不仅仅是一个shader能...转载 2018-03-28 09:28:32 · 12451 阅读 · 2 评论 -
Unity编辑器扩展-在Scene视图添加右键菜单
我用Unity前的界面编辑器是可以选中节点右键显示菜单的,所以现在也想在Unity上弄一个,需要做的也不多,一是知道什么时候在Scene视图右键单击了,二是在鼠标位置上显示菜单.对于拦截Scene视图的右键单击事件,可以给SceneView.onSceneGUIDelegate加个处理方法就可以了,Scene视图的大部分事件都可以统一在那里处理.菜单的话Unity也封闭得很好了,主要用Generi...原创 2018-04-02 19:49:44 · 13765 阅读 · 5 评论 -
Unity Shader-非主流纹理采样研究(流光,溶解,隐身效果)
简介原文地址:Unity Shader-非主流纹理采样研究(流光,溶解,隐身效果)今天来研究几个效果,最近比较忙,所以来弄几个比较简单的效果玩一下。不过也是游戏中常用的一些效果,流光效果,按照方向的溶解效果。其实这几个效果主要运用的就是世界空间坐标或者模型空间坐标用于采样的一个方法,总之就是有些非主流的纹理采样方式。不多说,下面进入正题。流光效果首先来看一下流光效果。流光效果是一个非常常见的效果,...转载 2018-03-27 09:48:50 · 9049 阅读 · 0 评论 -
Unity编辑器扩展-生成prefab的预览图并保存为图片
Project视图里的prefab文件都是一个蓝色的正方体,我想给它们加个预览图,暂时不知道怎么改Project视图的,但反正我想像NGUI那样有个专门的窗口存放一些常用的prefab,所以做成了如下效果:关于如何定制窗口,可以参考雨松的教程:Unity3D研究院之拓展自定义编辑器窗口实现思路:主要参考自:获取unity prefab的预览图像unity在2017.2版本可以使用官方自带API:A...原创 2018-03-21 14:38:59 · 19158 阅读 · 4 评论 -
Unity编辑器扩展-点击Projec视图的图片就赋给当前选中的Image节点
我所知道的,UGUI给Image赋上图片的方式有二:一是把图片拉去Image的监视器的Source Image处,一是在点其小圆点弹出选择图片的界面。两种方式我都觉得有点麻烦,我想如果我已经选中某Image节点了,这时再点击Project视图的图片时就要给我赋上该图,效果如下:实现思路:Selection.selectionChanged这个事件是Unity编辑器几个视图选中的东西变更时会触发的,...原创 2018-03-21 11:41:08 · 12181 阅读 · 0 评论 -
Unity编辑器扩展-拉UGUI的prefab入场景时挂在鼠标下的Canvas上
Unity的编辑器,你从Project视图拉图片或者prefab到Scene视图时,默认情况下它会挂在根节点上(起码我用的Unity5.4的是这样的),而每次都要手动地把新增节点挂到想要挂的Canvas上。还好Unity编辑器扩展可以让你自己自由定制,我想要的效果是这样的:实现思路:首先我们需要知道有什么东西拉进Scene视图了,一般来说插件系统会以Drag事件的形式给用户做定制处理的,Unity...原创 2018-03-21 11:03:31 · 12490 阅读 · 0 评论 -
Unity编辑器扩展-判断当前鼠标在scene视图下有哪些的节点
有时我们需要知道当前鼠标进入了Scene视图中的哪个控件区域,比如说要实现一功能:把prefab拉入Scene视图时判断拉入的位置是否有Canvas,有的话就挂在该Canvas上,无则生成一个。首先是获取鼠标的坐标:可通过Event.current.mousePosition;拿到但拿到的是基于Scene视图的坐标,需要转化为世界坐标:Event e = Event.current;Camera...原创 2018-03-19 10:07:34 · 12677 阅读 · 0 评论 -
Unity-UGUI提高开发效率的插件集合
项目源码都在github里:UIEditorPrefabWin窗口一般一些通用常用的资源我们都会做成prefab,比如某些按钮,文本样式等,然后用到时就在Project视图把它拉入场景,但project视图看不到prefab的预览图,都是蓝色的方块比较难辩认,所以可以用PrefabWin这个窗口拉控件出去,拉到场景时会判断控件落在哪个Canvas上,有则挂其上,无则自动生成一个Canvas...原创 2018-03-17 18:24:45 · 27382 阅读 · 21 评论