备份CatanBuilding瘦身独立工程

This commit is contained in:
JSD\13999
2026-05-26 16:15:54 +08:00
commit 2d0e6a61b7
12001 changed files with 2431925 additions and 0 deletions

View File

@@ -0,0 +1,101 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace game
{
public class ScratchCardUtils
{
public static void UpdateTexture2D(Texture2D texture2D, RenderTexture renderTexture, int width, int height)
{
RenderTexture tmp = RenderTexture.active;
RenderTexture.active = renderTexture;
texture2D.ReadPixels(new Rect(0, 0, width, height), 0, 0);
RenderTexture.active = tmp;
texture2D.Apply();
}
public static Texture2D GetReadableCopy(RenderTexture renderTexture, TextureFormat format = TextureFormat.ARGB32, bool mipMaps = false, int width = 0, int height = 0)
{
var newTexture = default(Texture2D);
if (renderTexture != null)
{
if (width <= 0)
{
width = renderTexture.width;
}
if (height <= 0)
{
height = renderTexture.height;
}
if (CanReadPixels(format) == true)
{
newTexture = new Texture2D(width, height, format, mipMaps, false);
var tmp = RenderTexture.active;
RenderTexture.active = renderTexture;
newTexture.ReadPixels(new Rect(0, 0, width, height), 0, 0);
RenderTexture.active = tmp;
newTexture.Apply();
}
}
return newTexture;
}
public static RenderTexture ReleaseRenderTexture(RenderTexture renderTexture)
{
return ReleaseTemporary(renderTexture);
}
public static RenderTexture ReleaseTemporary(RenderTexture renderTexture)
{
if (renderTexture != null)
{
renderTexture.DiscardContents();
RenderTexture.ReleaseTemporary(renderTexture);
}
return null;
}
public static bool CanReadPixels(TextureFormat format)
{
if (format == TextureFormat.RGBA32 || format == TextureFormat.ARGB32 || format == TextureFormat.RGB24 || format == TextureFormat.RGBAFloat || format == TextureFormat.RGBAHalf)
{
return true;
}
return false;
}
public static RenderTexture GetRenderTexture(RenderTextureDescriptor desc, bool sRGB)
{
desc.sRGB = sRGB;
return GetTemporary(desc, "ScratchCardUtils GetRenderTexture");
}
public static RenderTexture GetTemporary(RenderTextureDescriptor desc, string title)
{
var renderTexture = RenderTexture.GetTemporary(desc);
// TODO: For some reason RenderTexture.GetTemporary ignores the useMipMap flag?!
if (renderTexture.useMipMap != desc.useMipMap)
{
renderTexture.Release();
renderTexture.descriptor = desc;
renderTexture.Create();
}
return renderTexture;
}
}
}