女人做绿叶网站相亲拉人,佛山企业网站多少钱,营销网站的关键字,国内做网上旅游业务的网站Unity中使用VectorGraphics插件时#xff0c;如果使用VectorUtils.BuildSprite方法创建Sprite#xff0c;那么得到的Sprite往往是一个三角网格数比较多的Sprite#xff0c;如果想要得到使用贴图只有两个三角面的方形Sprite#xff0c;可以使用该插件提供的VectorUtils.Rend… Unity中使用VectorGraphics插件时如果使用VectorUtils.BuildSprite方法创建Sprite那么得到的Sprite往往是一个三角网格数比较多的Sprite如果想要得到使用贴图只有两个三角面的方形Sprite可以使用该插件提供的VectorUtils.RenderSpriteToTexture2D方法把Sprite的网格生成贴图再贴回到只有两个三角面的Sprite上去使用。 但是在实际使用时会出现命名在编辑器里面显示正确的结果但是发布目前只是测试在WebGL平台发布的结果别的平台没有测试之后却空空如也Sprite消失不见了问题实际上就是VectorUtils.RenderSpriteToTexture2D这个方法生成Texture2D纹理失败。 这个问题可以说是看起来复杂其实一点儿都不简单:D 看一下VectorUtils.RenderSpriteToTexture2D这个方法的源码一切问题就都清楚了。 注意一下第397行、415行、424行这个分别使用Shader名称的方式来获取Shader进行渲染这在编辑器里面当然一定会成立但是发布出来之后如果没有保证这些Shader被打包进发布的文件中的话这些Shader就无法通过名称查找到了。 这些Shader的位置如下图所示 以前遇到这种问题我的解决办法简单粗暴弄个脚本在脚本里面序列化一个Shader数组然后把脚本挂到一个物体上去在脚本上引用这三个Shader再次发布搞定。 后来发现也可以再ProjectSetting的Graphics里面设置如下图 需要说明的是我在使用VectorUtils.RenderSpriteToTexture2D这个方法的时候里面的expandEdges使用了默认的false所以只是添加了一个Hiddren/VectorDemultiply的Shader的引用如果你使用VectorUtils.RenderSpriteToTexture2D这个方法的时候参数expandEdges的值有可能是true那么要把另外两个Shader也添加进去。