在Unity中可能需要在纹理上面绘制文字、图像等。比如游戏中的显示器,手机等等等等等。太多了。
Unity的Textute2D类提供了设置像素的操作,但是这效率实在不敢恭维。
汉字数量巨大,全部贴在一张图上既耗空间,不方便改变字体样式。
使用FreeType2等CPU计算的文字库一帧又画不了多少,毕竟还要提交到显存
于是瞄准了Direct2D,当初学习这图像接口时就被微软说的“能与Direct3D进行完美交互”所吸引。
好在Unity支持DX11了,我们能够在Unity上面使用Direct2D了。所以只能在支持DX11的机器上面运行。
首先得说一下授权许可,毕竟Unity是一款商业软件。
Unity明确指出:Unity Pro才能使用Plug-in,即插件。Unity Free版本是不可以使用的。
但是,它说的是“插件”,而不是“本地代码”。
有童鞋肯定就会说我这是咬文嚼字了。非也非也,“插件”是指遵循当前环境并按照其对接口的相关规定写的代码。
那么,Unity插件有什么规定呢?
需要提供UnitySetGraphicsDevice与UnityRenderEvent
前者获取图形设备信息与图像设备相关事件,后者提供渲染事件。这两个接口是Unity自动调用的(或者也算半自动),
不能显式调用——因为没意义.....
你的本地代码提供了这两个接口就算插件,否则就是普通的本地代码库。