1. 我的电脑系统为 windows11
2. Unity Hub 版本 303.0-c9
3. Unity版本2022.3.49f1c1
4. 创建一个Mobile 2D Template的项目
5. 从这里安装了 https://gitee.com/wechat-minigame/minigame-tuanjie-transform-sdk.git WXSDK(0.1.23)
6. 编写shader,shader中的逻辑极其简单,直接返回纯白色
7. 创建一个材质引用此shader
8. 编写C#脚本,定义OnRenderImage函数,据我所知此函数用于屏幕后处理,在OnRenderImage使用刚刚创建的材质进行屏幕后处理,将此脚本挂到主相机节点上
9. 如果一切正常,屏幕应该显示纯白色
10. 将项目转换为微信小游戏,全部使用默认设置,不做任何修改
11. 使用微信开发者工具打开此项目,微信开发者工具版本为 Stable 1.06.2409140
12. 游戏在微信开发者工具的手机模拟器上运行正常,但是使用真机调试的时候出现了花屏
13. 调试用的手机为Android手机,型号为Redmi K50 Ultra,系统为Xiaomi HyperOS 1.0.3.0.ULFCNXM
14. 微信版本为8.0.55
15. 今天是2025-01-06
谁能帮我看一下啊,我太难了
项目里只有这两段代码:
转换微信小游戏:
使用微信开发者工具打开项目,运行正常:
使用真机调试,花屏,闪烁,噪点
将此脚本挂到主相机节点上:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[ExecuteInEditMode]
public class MyPostProcess : MonoBehaviour
{
public Material postProcessMaterial; // 用于后处理的材质
void Start()
{
}
void OnRenderImage(RenderTexture src, RenderTexture dest)
{
if (postProcessMaterial == null)
{
Graphics.Blit(src, dest);
return;
}
Graphics.Blit(src, dest, postProcessMaterial);
}
}
这是屏幕后处理材质使用的shader:
Shader "THT/MyPostProcess"
{
Properties
{
_MainTex ("Camera Content", 2D) = "white" {} // 摄像机内容, unity会将摄像机内容传递到_MainTex
}
SubShader
{
Pass
{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
struct vert_in
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
};
struct frag_in
{
float2 uv : TEXCOORD0;
float4 vertex : SV_POSITION;
};
sampler2D _MainTex;
frag_in vert (vert_in v)
{
frag_in o;
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
return o;
}
fixed4 frag (frag_in i) : SV_Target
{
return fixed4(1.0, 1.0, 1.0, 1.0);
}
ENDCG
}
}
}
谁能帮我解决,或者告诉我原因,我愿意出65块钱,因为我只有65块钱了。