写代码的时候遇到一个需求,需要将一个物体的贴图赋于另一个物体,并将原物体的贴图清掉。直接使用texture =的方式发现是浅拷贝,原物体贴图清掉之后另一个物体贴图也没了,于是换做深拷贝的写法。
使用Graphics.CopyTexture(Texture src, Texture dst)
RenderTexture texRender1 = 目标.texRender;
RenderTexture texRender = new RenderTexture(texRender1.width,texRender1.height,24, RenderTextureFormat.ARGB32);
Graphics.CopyTexture(texRender1, texRender);//这里把texRender1的贴图深拷贝给texRender
目标.GetComponent<MeshRenderer>().material.mainTexture = texRender;
完成需求