Unity IL2CPP 编码限制
参考
- unity documentation-Scripting restrictions 2018.4
- unity documentations-Scripting restrictions 2022.3
内容相差不大,2022.3在2018.4的基础上做了一些补充,并去除了一个关于泛型虚方法例子。
Ahead-of-time编译(AOT)
一些平台不允许运行时的代码生成(运行时开辟内存用于存放可执行的机器指令)。因此,一切依赖于just-in-time(JIT)的托管代码(managed code)在这些平台上都无法运行。为此,你需要把所有的托管代码都进行AOT编译。在一般情况下,这个限制不会带来什么影响。但在AOT编译的平台上,也存在着一些需要额外注意的要点。
Godot引擎贡献最佳实践
翻译自Godot引擎贡献指南,原文:best_practices_for_engine_contributors
#1 问题总要放在第一位
许多代码贡献者非常的有创造力,他们享受设计抽象数据结构,搭建优秀的交互界面的过程,又或许他们只是单纯地热爱编程。代码贡献者们总是有一些很酷的想法,但这些想法或许能、或许不能解决真实的问题。
这就被称为寻找问题的解决方案。在理想的世界,它们也许并不有害,但在现实世界中,代码是需要时间去完成的,它们占用空间,而且一经存在就需要时间去维护。避免一切不必要的事物,在软件开发中一直被视作一种好的实践方式。
TableCraft is finally here!
TableCraft is finally here!
TableCraft 发布!
从21年起经过两年断断续续的开发,TableCraft终于发布了v1.0.0版本,并开始提供给项目组同事使用了。这篇文章会介绍从最初立项到最终发布TableCraft的设计发生了怎样的变化,TableCraft现阶段存在的一些问题,以及未来的发展目标。
《CLR via C#》Chapter4 类型基础
第四章 类型基础
4.1 所有类型都从System.Object派生
GetHashCode() 与 Equals()
如果对象要在哈希表集合中用作键使用,那么应该重写GetHashCode方法;如果两个对象具有相同的值,那么Equals应该返回true。
Object类的Equals和GetHashCode具体实现都是internalcall,由CLR实现,Equals源码实现可参考以下:
使用SSH进行远端仓库身份验证
使用ssh进行GitHub身份验证
生成ssh key
使用ssh key进行连接/身份校验,需要先生成公私密钥,将公钥放到对应代码托管平台上,并在连接时使用相应的私钥。github目前推荐的keygen签名算法,以及密钥对生成方式:
$ ssh-keygen -t ed25519 -C "your_email@example.com"
> ...
生成公私密钥对后,将公钥放到对应代码托管平台上看起来像是下面这样。在进行ssh连接时,默认会使用唯一的私钥进行校验
同时,可以将github的public
key存放到自己设备的~/.ssh/known_hosts
下,就不会在初次使用ssh连接github时需要手动校验
GitHub 的 SSH 密钥指纹 - GitHub Docs
😅 手动校验时会输出下述类似内容,你可能已经见过了…
> The authenticity of host '[ssh.github.com]:443 ([140.82.112.36]:443)' can't be established.> ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU...