今天出现了一个奇怪的问题,人物角色在UI上的显示,采用的是Render Texture方案。在PC上正常,但在Android下的渲染异常(不显示)。
尝试改了兼容性比较好的色彩模式(如下图),也不行。最后动态生成Render Texture,可以了。我没有搞明白这是为什么,如果有明白的朋友,请不吝赐教。
改了参数也不行
下面是动态生成Render Texture:
动态生成的代码,根据你项目适当修改即可:
using UnityEngine.UI;public class DynamicRenderTexture_Role : MonoBehaviour
{// 获取 RawImage 组件并应用 Render Texturepublic RawImage rawImage;// 最新更改为动态生成 Render Texture[Header("动态生成--RenderTexture")]public int textureWidth = 1024;public int textureHeight = 1024;// 格式, RenderTextureFormat.ARGB32 或 RenderTextureFormat.Default // 貌似都是 [ R8B8G8A8_UNORM ]public RenderTextureFormat textureFormat = RenderTextureFormat.Default; public RenderTexture renderTexture;public Camera cam;void Start(){// ---------- 用于动态生成 RT ---------// 动态找相机cam = GameObject.Find("Camera_For_RT").GetComponent<Camera>();// 创建 Render TexturerenderTexture = new RenderTexture(textureWidth, textureHeight, 16, textureFormat);renderTexture.Create();// 将 Render Texture 附加到像机cam.targetTexture = renderTexture;// 将其应用到UIif (rawImage != null){rawImage.texture = renderTexture;}// ----------------------------------}void OnDisable(){// 清理 Render Textureif (renderTexture != null){renderTexture.Release();renderTexture = null;}}
}