1.这里我代码没啥问题~~~编辑器里也没毛病
void Start(){// 加载底图和上层图片string backgroundImagePath = Application.streamingAssetsPath + "/background.jpg";Texture2D backgroundTexture = new Texture2D(2, 2);byte[] backgroundImageData = System.IO.File.ReadAllBytes(backgroundImagePath);backgroundTexture.LoadImage(backgroundImageData);string overlayImagePath = Application.streamingAssetsPath + "/1.png";Texture2D overlayTexture = new Texture2D(2, 2);byte[] overlayImageData = System.IO.File.ReadAllBytes(overlayImagePath);overlayTexture.LoadImage(overlayImageData);// 创建合成材质Material imageProcessingMaterial = new Material(Shader.Find("Custom/ImageProcessingShader"));imageProcessingMaterial.SetTexture("_MainTex", backgroundTexture);imageProcessingMaterial.SetTexture("_OverlayTex", overlayTexture);// 创建RenderTexture,并渲染到其中RenderTexture renderTexture = new RenderTexture(backgroundTexture.width, backgroundTexture.height, 0);Graphics.Blit(null, renderTexture, imageProcessingMaterial);// 将RenderTexture转换为Texture2DTexture2D outputTexture = new Texture2D(renderTexture.width, renderTexture.height, TextureFormat.RGBA32, false);RenderTexture.active = renderTexture;outputTexture.ReadPixels(new UnityEngine.Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);outputTexture.Apply();RenderTexture.active = null;// 显示处理后的图像raw.texture = outputTexture;}
2.但是打包完之后,原本要合并的图片却没有反应
3.解决方法如下:
选择Edit->ProjectSettings->Graphics:
在ProjectSettings里面的Graphics,Always Included Shaders数组更改size,并将所需用到的Shader拖入其中