摘要:
在日常的工作中,偶尔能遇到这样的问题:“为何游戏脚本在现在的游戏开发中变得不可或缺?”。那么这周我就写篇文章从游戏脚本聊起,分析一下游戏脚本因何出现,而mono又能提供怎样的脚本基础。最后会通过模拟Unity3D游戏引擎中的脚本功能,将Mono运行时嵌入到一个非托管(C/C++)程序中,实现脚本语言和“引擎”之间的分离。 阅读全文
摘要:
写篇小文来聊聊在Mac上如何使用Visual Studio Code编译和调试C#代码,最后匹夫也会尝试把Visual Studio Code嵌入Unity3D中,作为一个准“IDE”使用。 阅读全文
摘要:
0x00 前言在匹夫的上一篇文章《匹夫细说C#:不是“栈类型”的值类型,从生命周期聊存储位置》的最后,匹夫以总结和后记的方式涉及到一部分迭代器的知识。但是觉得还是不够过瘾,很多需要说清楚的内容还是含糊不清,所以这周就专门写一下c#中的迭代器吧。0x01 你好,迭代器首先思考一下,在什么情景下我们需要... 阅读全文
摘要:
0x00 前言: 匹夫在日常和别人交流的时候,常常会发现一旦讨论涉及到“类型”,话题的热度就会立马升温,因为很多似是而非、或者片面的概念常常被人们当做是全面和正确的答案。加之最近在园子看到有人翻译的《C#堆vs栈》系列,觉得也挺有趣,挺不错的,所以匹夫今天也想从存储位置的角度聊聊所谓的值类型,同时也 阅读全文
摘要:
前言上一篇文章匹夫通过CIL代码简析了一下C#函数调用的话题。虽然点击进来的童鞋并不如匹夫预料的那么多,但也还是有一些挺有质量的来自园友的回复。这不,就有一个园友提出了这样一个代码,这段代码如果被编译成CIL代码的话,对虚函数的调用会使用call而非callvirt:override string ... 阅读全文
摘要:
CIL究竟应该使用call呢还是应该使用callvirt呢?那么匹夫就和各位一起去分析下这个话题背后的故事吧~~从ILGenerator实现一段本该报错的代码,到揭露CIL代码中的call 和 callvirt的异同,探索c#方法调用背后隐藏的知识点。 阅读全文
摘要:
之前匹夫也介绍过CIL其实也是面向对象的,所以寻思着大过年的,不如就写一个类,一个用来抽象化小匹夫的类吧,既可以介绍下小匹夫,小匹夫也可以借这个类给各位拜年。那么顺序由上到下,无外乎如何声明一个类,类成员如何定义,以至于到后来如何实例化一个类,并且调用实例的各个方法,当然本文的完整CIL代码各位可以在附录部分看到。 阅读全文
摘要:
匹夫印象里遇到的童靴,提Unity3D项目优化则必提DrawCall,这自然没错,但也有很不好影响。因为这会给人一个错误的认识:所谓的优化就是把DrawCall弄的比较低就对了。对优化有这种第一印象的人不在少数,drawcall的确是一个很重要的指标,但绝非全部。 阅读全文
摘要:
前言 由于匹夫本人是做游戏开发工作的,所以平时也会加一些玩家的群。而一些困扰玩家的问题,同样也困扰着我们这些手机游戏开发者。这不最近匹夫看自己加的一些群,常常会有人问为啥这个游戏一更新就要重新下载,而不能游戏内更新呢?作为游戏开发者,或者说Unity3D程序猿,我们都清楚Unity3D不支持热更新, 阅读全文
摘要:
以上一篇文章中的那个CIL实现的Hello Wolrd程序为基础,继续通过写CIL代码实现一些功能的方式来和各位探讨交流,同时也加深自己对CIL的掌握和印象。会涉及:函数的实现,局部变量的声明,cil是如何依托堆栈执行命令的,以及装箱~~~ 阅读全文