原因分析:模型坐标OS转为屏幕坐标CS后,在光栅化时,CS刚好命中屏幕像素坐标,在计算像素包含关系时就会(有人说因为浮点,我感觉还有GPU算法,求解)漏掉,造成间隙,而Tilemap就表现为白线。
解决方法:在shader对所有CS进行偏移(其实可以只偏移命中部分,但if判断反而更消耗,而且偏移后效果可接受)
代码(修改Universal Render Pipeline/2D/Sprite-Lit-Default,黄色部分为修改内容):
原因分析:模型坐标OS转为屏幕坐标CS后,在光栅化时,CS刚好命中屏幕像素坐标,在计算像素包含关系时就会(有人说因为浮点,我感觉还有GPU算法,求解)漏掉,造成间隙,而Tilemap就表现为白线。
解决方法:在shader对所有CS进行偏移(其实可以只偏移命中部分,但if判断反而更消耗,而且偏移后效果可接受)
代码(修改Universal Render Pipeline/2D/Sprite-Lit-Default,黄色部分为修改内容):
Unity游戏启动时,在闪屏出现之前有两件事需要做:1、序列化Resources文件夹内的资源结构树;2、预加载/编译一些指定的Shader,如GraphicsSettings-Preloaded Shaders中设置的元素。在这两件事期间屏幕将出现黑屏,体验毫无疑问相当差。而需要等待黑屏的时间就因工程而异了。如果你的工程不需要在这两件事上花时间,后面的内容请忽略。
优化的策略是废弃Unity自带的闪屏,在启动时自己显示一个闪屏图片(android层去做),并在进入游戏后......