序章:一封寄往异国的信
假设你是一个中国商人,要和一个日本工厂合作。你说中文,对方说日语,你们之间需要一个翻译。
但这个翻译不是一个人——而是一套标准化的表格系统。
你在表格上勾选:
☑ 我要联系的部门:生产车间(对应C++的哪个头文件)
☑ 我要调用的操作:启动生产线(对应C++的哪个方法)
☑ 操作类型:□ 读取数据 ☑ 执行动作(是getter还是方法调用)
☑ 特殊要求:需要把我的工厂编号一起传过去(HasExplicitThis)
你把表格交给翻译公司,翻译公司根据表格上的勾选项,自动生成一封完美的日语商务信函,发给日本工厂。
Unity中的[NativeMethod]、[NativeProperty]、[NativeHeader]等特性标记,就是这些表格上的勾选项。
它们本身不执行任何逻辑。它们只是元数据——贴在C#代码上的标签,告诉Unity的绑定生成器:“请按照这些指示,帮我生成连接C#和C++的胶水代码。”
第一章:Attribute到底是什么——“标签纸”
在深入Unity的特定Attribute之前,我们先搞清楚C#的Attribute机制本身。


