您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
54 行
1.8 KiB
54 行
1.8 KiB
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
|
|
public static class ClearAllReflectionProbesToBlack
|
|
{
|
|
[MenuItem("A2/Lighting/Reflection Probes/Clear to Black")]
|
|
|
|
static void ClearAllReflection()
|
|
{
|
|
ReflectionProbe[] probes = Component.FindObjectsOfType<ReflectionProbe>();
|
|
foreach (var rp in probes)
|
|
{
|
|
rp.bakedTexture = null;
|
|
}
|
|
|
|
foreach (var rp in probes)
|
|
{
|
|
rp.bakedTexture = GetDefaultBlackCube();
|
|
}
|
|
}
|
|
|
|
private static void ClearBakedTexture(Texture cubemap)
|
|
{
|
|
Cubemap p = cubemap as Cubemap;
|
|
FillCubemapFace(p, CubemapFace.PositiveX, Color.black);
|
|
FillCubemapFace(p, CubemapFace.PositiveY, Color.black);
|
|
FillCubemapFace(p, CubemapFace.PositiveZ, Color.black);
|
|
FillCubemapFace(p, CubemapFace.NegativeX, Color.black);
|
|
FillCubemapFace(p, CubemapFace.NegativeY, Color.black);
|
|
FillCubemapFace(p, CubemapFace.NegativeZ, Color.black);
|
|
p.Apply();
|
|
}
|
|
|
|
private static void FillCubemapFace(Cubemap c, CubemapFace f, Color color)
|
|
{
|
|
Color[] colors = c.GetPixels(f);
|
|
for (int i = 0; i < colors.Length; i++) colors[i] = color;
|
|
c.SetPixels(colors, f);
|
|
}
|
|
|
|
private static Cubemap GetDefaultBlackCube()
|
|
{
|
|
var cm = new Cubemap(1, TextureFormat.RGB24, true);
|
|
cm.SetPixels(new Color[] { Color.black }, CubemapFace.NegativeX, 0);
|
|
cm.SetPixels(new Color[] { Color.black }, CubemapFace.PositiveX, 0);
|
|
cm.SetPixels(new Color[] { Color.black }, CubemapFace.NegativeY, 0);
|
|
cm.SetPixels(new Color[] { Color.black }, CubemapFace.PositiveY, 0);
|
|
cm.SetPixels(new Color[] { Color.black }, CubemapFace.NegativeZ, 0);
|
|
cm.SetPixels(new Color[] { Color.black }, CubemapFace.PositiveZ, 0);
|
|
cm.Apply();
|
|
return cm;
|
|
}
|
|
}
|