• RuntimesUnityBugs
  • SkeletonGraphicRenderTexture在Android(Vulkan)上会显示异常

  • Düzenlendi

通过使用SkeletonGraphicRenderTexture组件,会出现在Vulkan手机上无法显示内容

环境:

Unity : 2021.3.12f1

重现步骤:

1.在默认场景新建任一一个SkeletonGraphic对象
2.添置SkeletonGraphicRenderTexture组件
3.打包(Graphic API: Vulkan)到手机(支持Vulkan)上运行

Related Discussions
...

根据您提供的信息,您在Android设备上使用Vulkan API时遇到了SkeletonGraphicRenderTexture显示异常的问题。以下是一些可能的解决方案和建议:

  1. 使用正确的Shader
    确保您为SkeletonGraphic对象使用了正确的Shader。根据Graphics API setting cause some critical bugs的讨论,SkeletonGraphic对象应使用Spine/SkeletonGraphic系列的Shader,而不是其他Shader。请检查并确保您的材质使用的是SkeletonGraphicDefault或其他Spine/SkeletonGraphic系列的Shader。

  2. 启用Multiple Canvas Renderers
    SkeletonGraphic组件的Inspector中,启用Advanced - Multiple Canvas Renderers选项。这可以解决一些与多材质或多纹理相关的问题。SkeletonGraphic problem中提到,如果没有启用此选项,可能会导致显示问题。

  3. 单一纹理限制
    确保您的Skeleton使用的是单一纹理(单页Atlas),因为SkeletonGraphic组件受限于Unity的CanvasRenderer,只能使用单一纹理。SkeletonGraphic rendering issue中提到,Skeletons用于UI时必须打包为单一纹理。

  4. 检查纹理导入设置
    确保您的纹理导入设置正确。例如,禁用Generate Mip Maps,并将Filter Mode设置为Point (no filter),以避免模糊或其他显示问题。Skeleton graphic is so blurry中提到这些设置可以解决一些视觉问题。

  5. 测试不同的API
    尝试在不同的Graphics API(如OpenGL ES3)下运行,看看是否问题依旧存在。这可以帮助确定问题是否特定于Vulkan API。

如果以上方法仍然无法解决问题,建议您提供更多的上下文信息,例如具体的错误信息、截图或一个最小的重现项目,以便更好地诊断和解决问题。

    Spinebot 使用OpenGlES3 这个是正常的,只有Vulkan才会有问题

    @semgilo Which exact version of the spine-unity runtime (name of the unitypackage, also listed in Assets/Spine/version.txt, or in the Unity Package Manager if installed this way) are you using?

      Harald

      This Spine-Unity runtime works with data exported from Spine Editor version: 4.1.xx
      Package version: spine-unity-4.1-2022-11-30.unitypackage

        semgilo It looks like you are using a very old version of spine-unity 4.1.
        The latest version of spine-unity 4.1 is 2024-05-06. Could you update to the latest version and see if the problem still occurs?: spine-unity Download

          Misaki I updated to the newest version. and the issue still exists.

          Package version: spine-unity-4.1-2024-05-06.unitypackage
          This Spine-Unity runtime works with data exported from Spine Editor version: 4.1.xx

          我发现了一些有用的信息,具体如下:
          1、我们算出来的Viewport中的x,y会是负数,但当Vulkan中使用负数就会显示不出来,当为正数就跟OpenGLES3显示基本一样,希望能对你们有帮助。

          @semgilo We have just released a bugfix for this issue, avoiding negative viewport offsets for both SkeletonRenderTexture and SkeletonGraphicRenderTexture, for both perspective and orthographic projection settings.

          A new spine-unity 4.2 unitypackage is available for download:
          https://esotericsoftware.com/spine-unity-download
          Please let us know if this fixes the issue on your end. Thanks again for reporting!

            @semgilo Glad to hear, thanks for letting us know.