摘要:在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求。 由于这种限制不方便,所以出现了ArrayList。 ArrayList、List<T> ArrayList是可变长数组,你可以将任意多的数据Add到ArrayList里面。其内部维护的数组,当长度不足时,会自动扩容为原来的两倍。 但是 阅读全文
posted @ 2020-01-09 18:04 何文西 阅读 (115) 评论 (0) 编辑
摘要:1. CMD下CD到要创建符号链接的目录 2. CMD下复制下方命令并执行 mklink /J XXX C:\GitHub\MotionFramework\Assets\XXX 阅读全文
posted @ 2020-01-06 14:25 何文西 阅读 (12) 评论 (0) 编辑
摘要:UnityEngine.Object重写了==运算符和!=运算符。 当GameObject被销毁后,Class类并不是真正null,只是使用==运算符和!=运算符时,Unity会把它当作null值处理。 Lua代码 在LUA里游戏对象在销毁后的判空实际上是有问题的。LUA示例代码里go不会为nil 阅读全文
posted @ 2019-12-26 16:01 何文西 阅读 (36) 评论 (0) 编辑
摘要:在不同的CLR版本中,两个相同的字符串可能具有不同的哈希码(算法差异导致)。 阅读全文
posted @ 2019-12-23 19:30 何文西 阅读 (14) 评论 (0) 编辑
摘要:官方文档 Texture Streaming:https://docs.unity3d.com/Manual/TextureStreaming.html TextureStreaming-API: https://docs.unity3d.com/Manual/TextureStreaming-AP 阅读全文
posted @ 2019-11-14 15:07 何文西 阅读 (37) 评论 (0) 编辑
摘要:Particle System Modules – FAQ 英文原文: https://blogs.unity3d.com/2016/04/20/particle-system-modules-faq/ ParticleSystem Performance – Culling 英文原文: https 阅读全文
posted @ 2019-11-11 15:31 何文西 阅读 (11) 评论 (0) 编辑
摘要:出错版本:Unity2018.4.4(含)以上版本 出错系统:windows7 or windows10 错误提示截图:提示AAPT2的守护进程启动失败 错误原因:Unity官方自2018.4.4版本起升级了内置的Gradle版本引起 解决办法: 在Jenkins --> Manage Jenkin 阅读全文
posted @ 2019-10-17 14:58 何文西 阅读 (108) 评论 (0) 编辑
摘要:版本号解释 Android 在 AndroidManifest.xml 中定义 android:versionName:对应 iOS 中的 CFBundleShortVersionString 版本号,用作产品管理。 android:versionCode:对应 iOS 中的 CFBundleVer 阅读全文
posted @ 2019-08-28 10:59 何文西 阅读 (34) 评论 (0) 编辑
摘要:开发者账号分类 个人类(Individual 99刀一年) 组织类(Company公司 99刀一年;Enterprise企业 299刀一年) 个人开发者账号: 在上架App Store后,开发者直接显示申请人姓名。协作人数1人,个人使用。每一种Apple产品,均有各类设备各100台测试权限。适合简单 阅读全文
posted @ 2019-08-27 10:14 何文西 阅读 (37) 评论 (0) 编辑
摘要:Jenkins下安装Gradle注意事项 Gradle Plugin插件版本必须与Jenkins版本匹配 Gradle版本必须与Jenkins版本匹配 重置Jenkins build number Jenkins无法及时获得SVN最新版本 原因:SVN服务器和Jenkins的服务器时间不一致,所以无 阅读全文
posted @ 2019-08-08 11:55 何文西 阅读 (34) 评论 (0) 编辑
摘要:1. 在Jenkins插件管理里,下载Gradle Plugin插件 2. 在全局工具配置里,设置安装Gradle 3. 在项目的构建里选择Gradle构建方式 选择之前设置的Gradle版本 4. 保存退出后,第一次执行构建 首次执行构建,Jenkins会自动帮我们下载Gradle文件并安装。 等 阅读全文
posted @ 2019-07-30 16:44 何文西 阅读 (524) 评论 (0) 编辑
摘要:1.安装Jenkins Unity插件 2.设置Unity安装目录 3.Unity构建 参考资料:https://wiki.jenkins.io/display/JENKINS/Unity3dBuilder+Plugin 参考资料:https://docs.unity3d.com/Manual/Co 阅读全文
posted @ 2019-07-30 16:16 何文西 阅读 (98) 评论 (0) 编辑
摘要:1.新建一个SVN[证书](钥匙图标) 2.填写SVN账号和密码 3. 配置自定义工作空间 用于SVN CheckOut 目录 4.设置源码管理 选择刚刚新建的SVN证书即可 阅读全文
posted @ 2019-07-30 15:04 何文西 阅读 (243) 评论 (0) 编辑
摘要:1.JAVA环境 Jenkins依赖于JAVA环境,请先安装JAVA 2.下载Jenkins 官方:https://jenkins.io/ 下载STL稳定版本 3.安装Jenkins 安装完毕后,在浏览器里输入:http://localhost:8080/ 4.解锁Jenkins 注意:如果MAC机 阅读全文
posted @ 2019-07-30 14:00 何文西 阅读 (34) 评论 (0) 编辑
摘要:1. 拷贝EXE Unity安装目录下(Program Files\Unity\Editor\)找到Unity.exe,然后拷贝一个副本将其重命名为UnityDarkSkin.exe 2. 替换16进制内容 使用UltraEdit工具打开之前新生成的UnityDarkSkin.exe文件 打开搜索- 阅读全文
posted @ 2019-05-10 10:33 何文西 阅读 (446) 评论 (0) 编辑
摘要:原文:https://zhuanlan.zhihu.com/p/24553860 本文内容思维导图式总结 以下是本文内容,提高Unity中C#代码质量的22条准则的总结式思维导图: 原则1:尽可能地使用属性,而不是可直接访问的数据成员 属性(property)一直是C#语言中比较有特点的存在。属性允 阅读全文
posted @ 2019-04-01 18:06 何文西 阅读 (494) 评论 (0) 编辑
摘要:游戏程序员的英文水平各不相同,在变量和函数命名的时候分歧会很大。 这里推荐一个暴雪魔兽世界的命名参考。里面包含MMO各类功能的中英文对照。 http://api.battlenet.top/ 阅读全文
posted @ 2019-02-28 11:27 何文西 阅读 (72) 评论 (0) 编辑
摘要:https://stackoverflow.com/questions/5887248/ios-app-maximum-memory-budget device: (crash amount/total amount/percentage of total) iPad1: 127MB/256MB/4 阅读全文
posted @ 2018-12-17 15:42 何文西 阅读 (70) 评论 (0) 编辑
摘要:我们可以通过crash日志信息,查看程序crash在什么地方。程序crash日志: 在这份堆栈信息里,可以看到崩溃时的内存地址,例如0049b647这样的数字。每行的结尾则是所使用的库,例如:libunity.so在Unity 5.3.6之后的版本,Unity提供了libunity.so的符号表。 阅读全文
posted @ 2018-12-12 18:41 何文西 阅读 (2010) 评论 (0) 编辑
摘要:http://forum.china.unity3d.com/thread-32932-1-1.html 划分画布 问题:UI Canvas上有一个或多个元素变化时,会污染整个画布。画布(Canvas)是Unity UI的基本组件。它会生成网格来呈现放置在画布上的UI元素,当UI元素变化时,它会重新 阅读全文
posted @ 2018-09-29 15:56 何文西 阅读 (99) 评论 (0) 编辑
摘要:原文 : https://blog.csdn.net/MePlusPlus/article/details/76762203 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持。微软将C#提交给标准组织ECMA 阅读全文
posted @ 2018-09-01 11:55 何文西 阅读 (201) 评论 (0) 编辑
摘要:转载请注明出处 何文西 概述 有幸能够接触到Unity引擎的源代码,在学习底层数学库的时候发现Unity为了跨平台对CPU做了多方支持,而且数学库底层使用的是SIMD技术。 SIMD(SingleInstruction Multiple Data)是单指令流多数据技术,是一种采用一个控制器来控制多个 阅读全文
posted @ 2018-05-21 17:44 何文西 阅读 (486) 评论 (0) 编辑
摘要:转载请注明出处 何文西 官方解释: Batches : “Batching” is where the engine attempts to combine the rendering of multiple objects into a chunk of memory in order to re 阅读全文
posted @ 2018-05-15 11:43 何文西 阅读 (170) 评论 (0) 编辑
摘要:原文:http://www.cnblogs.com/zblade 英文:英文地址 如果游戏的渲染瓶颈来自于GPU 首要任务就是找出造成GPU瓶颈的因素所在,通常GPU的性能受到像素分辨率的影响,特别是在移动客户端的游戏,但是内存带宽和顶点计算的影响也需要注意。这些因素的影响都需要实时的测试和定位。 阅读全文
posted @ 2018-05-14 20:49 何文西 阅读 (76) 评论 (0) 编辑
摘要:原文:http://www.cnblogs.com/zblade 英文:英文地址 如果游戏渲染问题来自CPU 概括的来说,CPU在一帧的渲染中的工作可以分为三个部分: 1)决定谁需要被渲染 2)为GPU准备渲染指令 3) 发送渲染指令给GPU 在每个部分中又有许多单独的任务,这些任务主要通过多个线程 阅读全文
posted @ 2018-05-14 20:48 何文西 阅读 (59) 评论 (0) 编辑
摘要:原文:http://www.cnblogs.com/zblade 英文:英文地址 一、介绍 本文主要学习在Unity进行一帧的渲染的时候,观察到的场景背后的运行原理,在渲染的时候会有什么样性能问题发生以及如何解决这些渲染相关的问题。 在开始阅读这篇文章之前,首先需要知道对于渲染问题是没有万能的解决之 阅读全文
posted @ 2018-05-14 20:47 何文西 阅读 (64) 评论 (0) 编辑
摘要:英文:英文地址 阅读全文
posted @ 2018-05-14 20:28 何文西 阅读 (25) 评论 (0) 编辑
摘要:英文:英文地址 阅读全文
posted @ 2018-05-14 20:26 何文西 阅读 (48) 评论 (0) 编辑
摘要:Unity2018版译文 转载请注明出处 何文西 英文:英文地址 在屏幕上绘制一个物体,引擎必须向绘图API(openGL或者D3D)发起一次DrawCall。DrawCall通常是资源密集型的,图形API在每次调用时都要做大量的工作,这会导致CPU方面的性能开销。这主要是由于在DrawCall之间 阅读全文
posted @ 2018-05-14 10:42 何文西 阅读 (152) 评论 (0) 编辑
摘要:Unity官方的Github实现:Post Processing Stack Post-processing is the process of applying full-screen filters and effects to a camera’s image buffer before it 阅读全文
posted @ 2018-05-09 10:13 何文西 阅读 (133) 评论 (0) 编辑
摘要:转载请注明出处 何文西 1. 昼夜 1) 场景使用光照图 可以烘培出白天和夜晚俩种光照图,在玩家切换场景时根据时间系统选择加载哪种光照图。如果要做实时变化的效果,可以同时加载俩种光照图,然后在shader里根据时间做融合。 2) 场景使用实时光照 这种方式最简单,调整环境光或光源的亮度和颜色。 3) 阅读全文
posted @ 2018-05-08 15:20 何文西 阅读 (167) 评论 (0) 编辑
摘要:转载请注明出处 何文西 前言 我们项目是一款45度俯视角的沙盒游戏,场景要求非常大,场景尺寸一般在1024X1024或者2048X2048。在技术上这么大规模的场景一次性加载必定带来效率问题,所以需要考虑到场景切割。项目需求里还要有天气系统,实时的昼夜系统。 综上所述会涉及到多个技术要点: 1 地形 阅读全文
posted @ 2018-05-08 15:19 何文西 阅读 (92) 评论 (0) 编辑
摘要:原文:https://answer.uwa4d.com/question/5ae1eef932493548fbd32ba1 原文:英文原文 导致批处理失败的原因 1. Additional Vertex Streams — 对象使用MeshRenderer.additionalVertexStrea 阅读全文
posted @ 2018-05-08 11:55 何文西 阅读 (87) 评论 (0) 编辑
摘要:LOD优化策略-场景 ◆Shader LOD• shader.globalMaximumLOD来指定不同画质的LOD值• Shader内部定义多个SubShader,逐个降低计算和纹理采样使用Shader LOD存在一个问题,在Properties中定义的贴图,在低级别的SubShader中虽然不被 阅读全文
posted @ 2018-05-07 16:39 何文西 阅读 (127) 评论 (0) 编辑
摘要:原文:https://answer.uwa4d.com/question/5acc208b425802635474fc7d LOD(Level of Detail),这里的D代表Detail而不是Distance,也就是说,所有游戏画面和游戏功能的细节都可以进行分级,不必受限于距离。一套好的LOD系 阅读全文
posted @ 2018-05-07 16:38 何文西 阅读 (119) 评论 (0) 编辑
摘要:原文:https://zhuanlan.zhihu.com/p/33458843 前言 优化本身是一件琐碎且耗神的事情,需要经历问题定位、原因探查、优化方案设计和实现、效果验证、资源修改多个步骤,也会涉及到各个职位之间的配合和协调。在这其中,可能带来较大工作量的是对于之前普遍使用的一些方法/控件的优 阅读全文
posted @ 2018-05-07 10:22 何文西 阅读 (138) 评论 (0) 编辑
摘要:1:对象池中对象用scale=0或者alphaGroup=0来控制更佳, 当UGUI控件 scale=0时顶点数也会变为0 2:如果出现了WaitingForJob或PutGeometryJobFence,则说明合并网格开销很大。 3:Z一定要调为0,除非有3DUI穿插。 4:Image为null或 阅读全文
posted @ 2018-05-05 16:49 何文西 阅读 (156) 评论 (0) 编辑
摘要:原文:https://blog.csdn.net/u011926026/article/details/75175087 原文:https://www.jianshu.com/p/061e67308e5f UGUI的层叠顺序是按照Hierarchy中的顺序从上往下进行的,也就是越靠上的组件,就会被画 阅读全文
posted @ 2018-05-05 11:37 何文西 阅读 (138) 评论 (0) 编辑
摘要:原文:http://blog.uwa4d.com/archives/fillrate.html Fill Rate(填充率)是指显卡每帧每秒能够渲染的像素数。在每帧绘制中,如果一个像素被反复绘制的次数越多,那么它占用的资源也必然更多。目前在移动设备上,FillRate 的压力主要来自半透明物体。因为 阅读全文
posted @ 2018-05-04 18:09 何文西 阅读 (118) 评论 (0) 编辑
摘要:原文:http://gad.qq.com/article/detail/26562 基于以上UGUI的网格更新原理,我们可以做以下优化: 1:使用尽可能少的UI元素:在制作UI时,一定要仔细查检UI层级,删除不必要的UI元素,这样可以减少深度排序的时间以及Rebuild的时间。 2:减少Rebuil 阅读全文
posted @ 2018-05-04 14:27 何文西 阅读 (628) 评论 (0) 编辑