性能测试 先放结果,经过多次性能测试并取得平均值: 明确类型的委托:执行时间:41, 内存消耗:64120 不明确类型的委托:执行时间:6339,内存消耗:1524224 通过反射Invoke执行:执行时间:1087,内存消耗:4344552 明确类型的委托 委托作为C#特殊类型,在明确委托类型下编译器则会特殊照顾,在委托类中生成隐藏的函数,如System.Action<T>的Invoke函数: .method public hidebysig newslot virtual instan…
性能测试 先放结果,经过多次性能测试并取得平均值: 明确类型的委托:执行时间:41, 内存消耗:64120 不明确类型的委托:执行时间:6339,内存消耗:1524224 通过反射Invoke执行:执行时间:1087,内存消耗:4344552 明确类型的委托 委托作为C#特殊类型,在明确委托类型下编译器则会特殊照顾,在委托类中生成隐藏的函数,如System.Action<T>的Invoke函数: .method public hidebysig newslot virtual instan…
其实也是没事儿闲的,研究了两个小时怎么改名。 在Build Setting面板编译打包的时候需要勾选Create Visual Studio Solution。点击build选择路径,这样就创建了一个windows的C++解决方案。 解决方案里总共有3个项目,分别是: 你的项目名字 UnityData UnityPlayerStub 其中你的项目名字是主启动项目,使用windows的wWinMain函数作为窗体类函数入口(main是控制台入口),会去调用UnityMain函数。 int WINAPI wWinMai…
压缩格式 常用的压缩格式为两种: LZMA:单包一次全部读入内存,压缩率高,文件小。 LZ4:可以分块读入内存,压缩率相比LZMA低,文件相比LZMA更大。 LZMA的特性导致包体不能过大,共享资源在生成时会生成场景文件:level0、level1,资源文件sharedassets0.assets等。 LZ4的特性则对包体大小更宽松,可以直接读取对应资源而不用整包读取,共享资源生成时会直接生成单包文件data.unity3d 资源打包 在Unity3d中,需要打包的资源可以分为三类: 最普通的通用共享资源 Reso…
前言 制作脚本解释器最初的动机,是为了两个需求。一是想让编辑制作人员可以脱离游戏引擎的束缚,减少文字录入还需要学习游戏引擎的成本;二是制作思路,目前还没有一款能够在运行时将程序状态序列化的语言,并且像krkr那种标记式的语言并不能拥有高级语言的各种特性。由此开始,开启了我制作脚本解释器,学习编译原理的旅程。 简陋的第一代解释器 在制作第一代解释器时,我还没有学习编译原理,其实也并不光是没学过编译原理,可能编程都没怎么学过,基本上都是在用C#最基本的字符串去切割去匹配,替换等操作,非常的简陋,实现的功能也是非常简单。…
二次元风格绘画技法的特殊性,制作出来的三维模型在透视上无法很好的还原。 为了做出看着更舒服的模型,绝大多数的MMD模型都会以脸的正面表现为主,这也是一直使用多数正脸和半侧脸镜头的问题。 均衡。侧发适当的向后,侧发主体表现在45度的侧脸,这样正脸既可以看到侧发表现,也可以在侧脸中看到眼睛,但这么做的问题是:正面和侧面的表现力不足,正面可能会缺少一些在绘画技法中常见的如侧发遮挡颧骨的效果;而半侧脸会因为侧发的向后移动,缺失另一方向侧发的表现。如果不需要特殊的脸部特写和动画,这也许是不错的解决方案。 混合变形或骨骼。使用…
需求:以单字为单位的透明度递进与播放。 继承BaseMeshEffect制作UI特效。 制作思路: 声明一个与文字数量同样长度的数组,用于储存每个文字的透明度。 用索引标记当前显示的文字。 每帧对从开始处到索引标记的位置进行透明度增加,并储存更新数组。 调用graphic.SetVerticesDirty,这样会触发ModifyMesh方法。 在ModifyMesh设置顶点透明度即可更新渲染。 注意: 一个文字由两个三角形构成,而在操作顶点流时,获取的顶点是两个三角的顶点,也就是说,一个文字的顶点数是6而非4,需要…
前言 Reflection:反射,这一特性在许多主流语言中都能找到,可以在运行时动态的获取类型信息。 一些人认为在cpp中编程时,可以规避掉使用反射,转而用模板来实现,或者使用反射就是程序设计出现了问题;要么就是有关于运行时反射对于性能影响,都用到反射了还不如去用Java之类的说辞。但我认为,在cpp中还是有一些需求是可以用到运行时反射的:对象的序列化与反序列化、可以通过字符串查找类型与创建对象、运行时判断继承关系等功能。 分析 反射信息属于一种元数据,这种元数据储存了类型相关的信息,如:类型名、基类、字段、方法、…
使用自己安装的安卓SDK基本上都会遇到这个问题,而国内的博客基本上转发来转发去的,都是使用UnityHub来安装SDK,这里给出使用自行安装的SDK出现sdk tools version 0.0.0的解决方案。 环境:Unity 2019.3.6 SDK工具:cmdline-tools 记录时间:2021年8月4日 注:该问题具有时效性。 解决方案 使用文本编辑器打开Android\Sdk\tools\package.xml 在最后面找到obsolete="true" 改为obsolete="fals…
在Unity的API文档中写到,需将Gizmos图标放到Assets/Gizmos下,Gizmos一般都是作为脚本的附件,而放在Assets/Gizmos文件夹中并不好和脚本一起移动,因为Gizmos文件夹又不像Editor以及Pluging被unity所识别,所以有了此问题和解决方案。 实际Icon填写的路径是项目中以Assets文件夹为根的绝对路径,所以以下是成立的。 Gizmos.DrawIcon("this.transform.position, Assets/Scripts/Gizmos/ima…
COPYRIGHT © 2014-2023 雪千渔Blog. ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang