摘要:List.Sort内部实际上调用的是Array.Sort方法 实际排序算法 1. 基于CLR内部排序:是针对内置类型排序。 2. 深度限制快速排序(DepthLimitQuickSort):是先快速排序,达到一定深度时,更改为堆排序。 注意:快排是不稳定排序。也就是说,如果两个元素相等,则可能不会保 阅读全文
posted @ 2020-09-11 15:10 何文西 阅读(27) 评论(0) 推荐(0) 编辑
摘要:在跟其它系统进行交互的时候需要考虑大小端(big-endian / little-endian)的问题,例如:需要读取其他系统生成的文件。 Mono的不同平台不需要考虑大小端的转换问题,字节序是由ECMA-335 CLI标准定义的,只要符合这个标准的实现,都不需要转换字节序。 TCP/IP各层协议将 阅读全文
posted @ 2020-08-20 18:50 何文西 阅读(23) 评论(0) 推荐(0) 编辑
摘要:问题代码示例 public Transform Parent = null; void Start () { //Transform Parent = null; Transform SelfTransform = GetComponent<Transform>(); Transform a = P 阅读全文
posted @ 2020-08-07 18:18 何文西 阅读(60) 评论(0) 推荐(0) 编辑
摘要:Facebook的自定义事件(Log Events),需要在后台配置隐私条款。 注意:对于加利福尼亚州的用户需要遵守CCPA法律条款。在该条款下,来自于加州的用户设备上发送的自定义事件不会被后台接收。 https://developers.facebook.com/docs/app-events/g 阅读全文
posted @ 2020-08-06 14:59 何文西 阅读(28) 评论(0) 推荐(0) 编辑
摘要:https://techblog.kayac.com/what-is-the-best-download-handler(日语) AssetBundleのキャッシュを完全に理解する https://qiita.com/k7a/items/23d909ffeea3bab7dfcb Unityにおける通 阅读全文
posted @ 2020-07-28 14:39 何文西 阅读(145) 评论(0) 推荐(0) 编辑
摘要:官方: Bitcode is an intermediate representation of a compiled program. apps you upload to App Store Connect that contain bitcode will be compiled and li 阅读全文
posted @ 2020-06-03 10:44 何文西 阅读(62) 评论(0) 推荐(0) 编辑
摘要:在Unity中游戏存档有如下四种方式:PlayerPrefs,C#序列化,Xml序列化,Json序列化 一般要解决几个问题: 1.游戏版本的升级 2.玩家有多个存档 3.玩家破坏存档的情况 PlayerPrefs 优点:上手简单,存储方便,不用考虑内部实现,适合做小游戏的数据存档。 缺点:只支持基本 阅读全文
posted @ 2020-06-01 16:03 何文西 阅读(224) 评论(0) 推荐(0) 编辑
摘要:无论是计算机算法概论、还是数据结构书中,关于算法的时间复杂度很多都用包含O(logN)这样的描述,但是却没有明确说logN的底数究竟是多少。 算法中log级别的时间复杂度都是由于使用了分治思想,这个底数直接由分治的复杂度决定。如果采用二分法,那么就会以2为底数,三分法就会以3为底数,其他亦然。不过无 阅读全文
posted @ 2020-05-29 15:54 何文西 阅读(131) 评论(0) 推荐(0) 编辑
摘要:我们在做单机游戏的时候,常常需要存储一些游戏数据到本地。 在安卓平台上,这个方法(UnityEngine.PlayerPrefs)内部调用的是SharedPreferences。 SharedPreferences的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的游戏配置 阅读全文
posted @ 2020-05-27 16:26 何文西 阅读(105) 评论(0) 推荐(0) 编辑
摘要:如果ILRuntime使用时性能有问题,需要确认以下几点: 1.发包前是否做了自动分析CLR绑定 2.是否注册了值类型绑定 3.热更DLL是否为release模式编译 4.发包前是否关闭了Development build 5.编辑器下是否定义了DISABLE_ILRUNTIME_DEBUG 阅读全文
posted @ 2020-04-14 18:22 何文西 阅读(368) 评论(0) 推荐(0) 编辑
摘要:Adb目录 ..\android-sdk\platform-tools\ Logcat监听安卓模拟器 MuMu模拟器的端口:7555 #!/usr/bin/env python import os import sys Cmd_kill = "adb kill-server" Cmd_start = 阅读全文
posted @ 2020-04-08 18:23 何文西 阅读(55) 评论(0) 推荐(0) 编辑
摘要:官文详解: https://docs.unity3d.com/Manual/ManagedCodeStripping.html https://docs.unity3d.com/Manual/IL2CPP-BytecodeStripping.html 代码裁剪的主要对象包括:.Net系统库、Unit 阅读全文
posted @ 2020-04-08 15:40 何文西 阅读(339) 评论(0) 推荐(0) 编辑
摘要:为什么设置 Transform.position.x = value 会报语法错误? Vector3是结构体类型,position是一个属性,属性的本质实际上就是方法。 直接访问实际上获取的是position(Vector3结构体)的副本。报错代码的本意是要设置Transform的坐标值,但是实际上 阅读全文
posted @ 2020-03-20 14:02 何文西 阅读(151) 评论(0) 推荐(0) 编辑
摘要:在C#中,数组由于是固定长度的,所以常常不能满足我们开发的需求。 由于这种限制不方便,所以出现了ArrayList。 ArrayList、List<T> ArrayList是可变长数组,你可以将任意多的数据Add到ArrayList里面。其内部维护的数组,当长度不足时,会自动扩容为原来的两倍。 但是 阅读全文
posted @ 2020-01-09 18:04 何文西 阅读(3805) 评论(0) 推荐(2) 编辑
摘要:1. CMD下CD到要创建符号链接的目录 CD /D D: 2. CMD下复制下方命令并执行 mklink /J MotionFramework C:\GitHub\MotionFramework\Assets\MotionFramework 注意:MotionFramework文件夹不需要提前创建 阅读全文
posted @ 2020-01-06 14:25 何文西 阅读(57) 评论(0) 推荐(0) 编辑
摘要:UnityEngine.Object重写了==运算符和!=运算符。 // // Operators // public static bool operator == (Object x, Object y); public static bool operator != (Object x, Ob 阅读全文
posted @ 2019-12-26 16:01 何文西 阅读(264) 评论(0) 推荐(0) 编辑
摘要:在不同的CLR版本中,两个相同的字符串可能具有不同的哈希码(算法差异导致)。 阅读全文
posted @ 2019-12-23 19:30 何文西 阅读(75) 评论(0) 推荐(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 何文西 阅读(239) 评论(0) 推荐(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 何文西 阅读(70) 评论(0) 推荐(0) 编辑
摘要:出错版本:Unity2018.4.4(含)以上版本 出错系统:windows7 or windows10 错误提示截图:提示AAPT2的守护进程启动失败 错误原因:Unity官方自2018.4.4版本起升级了内置的Gradle版本引起 解决办法: 在Jenkins --> Manage Jenkin 阅读全文
posted @ 2019-10-17 14:58 何文西 阅读(569) 评论(0) 推荐(0) 编辑
摘要:版本号解释 Android 在 AndroidManifest.xml 中定义 android:versionName:对应 iOS 中的 CFBundleShortVersionString 版本号,用作产品管理。 android:versionCode:对应 iOS 中的 CFBundleVer 阅读全文
posted @ 2019-08-28 10:59 何文西 阅读(120) 评论(0) 推荐(0) 编辑
摘要:开发者账号分类 个人类(Individual 99刀一年) 组织类(Company公司 99刀一年;Enterprise企业 299刀一年) 个人开发者账号: 在上架App Store后,开发者直接显示申请人姓名。协作人数1人,个人使用。每一种Apple产品,均有各类设备各100台测试权限。适合简单 阅读全文
posted @ 2019-08-27 10:14 何文西 阅读(101) 评论(0) 推荐(0) 编辑
摘要:Jenkins网站 插件下载地址:http://updates.jenkins-ci.org/download/plugins/ Jenkins下安装Gradle注意事项 Gradle Plugin插件版本必须与Jenkins版本匹配 Gradle版本必须与Jenkins版本匹配 重置Jenkins 阅读全文
posted @ 2019-08-08 11:55 何文西 阅读(74) 评论(0) 推荐(0) 编辑
摘要:1. 在Jenkins插件管理里,下载Gradle Plugin插件 2. 在全局工具配置里,设置安装Gradle 3. 在项目的构建里选择Gradle构建方式 选择之前设置的Gradle版本 4. 保存退出后,第一次执行构建 首次执行构建,Jenkins会自动帮我们下载Gradle文件并安装。 等 阅读全文
posted @ 2019-07-30 16:44 何文西 阅读(1844) 评论(0) 推荐(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 何文西 阅读(252) 评论(0) 推荐(0) 编辑
摘要:1.新建一个SVN[证书](钥匙图标) 2.填写SVN账号和密码 3. 配置自定义工作空间 用于SVN CheckOut 目录 4.设置源码管理 选择刚刚新建的SVN证书即可 阅读全文
posted @ 2019-07-30 15:04 何文西 阅读(875) 评论(0) 推荐(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 何文西 阅读(118) 评论(0) 推荐(0) 编辑
摘要:1. 拷贝EXE Unity安装目录下(Program Files\Unity\Editor\)找到Unity.exe,然后拷贝一个副本将其重命名为UnityDarkSkin.exe 2. 替换16进制内容 使用UltraEdit工具打开之前新生成的UnityDarkSkin.exe文件 打开搜索- 阅读全文
posted @ 2019-05-10 10:33 何文西 阅读(769) 评论(0) 推荐(0) 编辑
摘要:原文:https://zhuanlan.zhihu.com/p/24553860 本文内容思维导图式总结 以下是本文内容,提高Unity中C#代码质量的22条准则的总结式思维导图: 原则1:尽可能地使用属性,而不是可直接访问的数据成员 属性(property)一直是C#语言中比较有特点的存在。属性允 阅读全文
posted @ 2019-04-01 18:06 何文西 阅读(1069) 评论(0) 推荐(0) 编辑
摘要:游戏程序员的英文水平各不相同,在变量和函数命名的时候分歧会很大。 这里推荐一个暴雪魔兽世界的命名参考。里面包含MMO各类功能的中英文对照。 http://api.battlenet.top/ 阅读全文
posted @ 2019-02-28 11:27 何文西 阅读(140) 评论(0) 推荐(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 何文西 阅读(135) 评论(0) 推荐(0) 编辑
摘要:我们可以通过crash日志信息,查看程序crash在什么地方。程序crash日志: 在这份堆栈信息里,可以看到崩溃时的内存地址,例如0049b647这样的数字。每行的结尾则是所使用的库,例如:libunity.so在Unity 5.3.6之后的版本,Unity提供了libunity.so的符号表。 阅读全文
posted @ 2018-12-12 18:41 何文西 阅读(3591) 评论(0) 推荐(0) 编辑
摘要:http://forum.china.unity3d.com/thread-32932-1-1.html 划分画布 问题:UI Canvas上有一个或多个元素变化时,会污染整个画布。画布(Canvas)是Unity UI的基本组件。它会生成网格来呈现放置在画布上的UI元素,当UI元素变化时,它会重新 阅读全文
posted @ 2018-09-29 15:56 何文西 阅读(185) 评论(0) 推荐(0) 编辑
摘要:原文 : https://blog.csdn.net/MePlusPlus/article/details/76762203 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持。微软将C#提交给标准组织ECMA 阅读全文
posted @ 2018-09-01 11:55 何文西 阅读(266) 评论(0) 推荐(0) 编辑
摘要:转载请注明出处 何文西 概述 有幸能够接触到Unity引擎的源代码,在学习底层数学库的时候发现Unity为了跨平台对CPU做了多方支持,而且数学库底层使用的是SIMD技术。 SIMD(SingleInstruction Multiple Data)是单指令流多数据技术,是一种采用一个控制器来控制多个 阅读全文
posted @ 2018-05-21 17:44 何文西 阅读(923) 评论(0) 推荐(0) 编辑
摘要:官方解释: Batches : “Batching” is where the engine attempts to combine the rendering of multiple objects into a chunk of memory in order to reduce CPU ove 阅读全文
posted @ 2018-05-15 11:43 何文西 阅读(270) 评论(0) 推荐(0) 编辑
摘要:原文:http://www.cnblogs.com/zblade 英文:英文地址 如果游戏的渲染瓶颈来自于GPU 首要任务就是找出造成GPU瓶颈的因素所在,通常GPU的性能受到像素分辨率的影响,特别是在移动客户端的游戏,但是内存带宽和顶点计算的影响也需要注意。这些因素的影响都需要实时的测试和定位。 阅读全文
posted @ 2018-05-14 20:49 何文西 阅读(108) 评论(0) 推荐(0) 编辑
摘要:原文:http://www.cnblogs.com/zblade 英文:英文地址 如果游戏渲染问题来自CPU 概括的来说,CPU在一帧的渲染中的工作可以分为三个部分: 1)决定谁需要被渲染 2)为GPU准备渲染指令 3) 发送渲染指令给GPU 在每个部分中又有许多单独的任务,这些任务主要通过多个线程 阅读全文
posted @ 2018-05-14 20:48 何文西 阅读(105) 评论(0) 推荐(0) 编辑
摘要:原文:http://www.cnblogs.com/zblade 英文:英文地址 一、介绍 本文主要学习在Unity进行一帧的渲染的时候,观察到的场景背后的运行原理,在渲染的时候会有什么样性能问题发生以及如何解决这些渲染相关的问题。 在开始阅读这篇文章之前,首先需要知道对于渲染问题是没有万能的解决之 阅读全文
posted @ 2018-05-14 20:47 何文西 阅读(86) 评论(0) 推荐(0) 编辑
摘要:英文:英文地址 阅读全文
posted @ 2018-05-14 20:28 何文西 阅读(42) 评论(0) 推荐(0) 编辑