studycase2
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
// Cristian Pop - https://boxophobic.com/
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using UnityEngine.Rendering;
|
||||
|
||||
namespace Boxophobic.StyledGUI
|
||||
{
|
||||
public partial class StyledGUI
|
||||
{
|
||||
public static int DrawTexturePreview(Texture texture, Material previewMaterial, int previewChannel)
|
||||
{
|
||||
GUILayout.Space(10);
|
||||
|
||||
var styledText = new GUIStyle(EditorStyles.toolbarButton)
|
||||
{
|
||||
alignment = TextAnchor.MiddleCenter,
|
||||
fontStyle = FontStyle.Normal,
|
||||
fontSize = 10,
|
||||
};
|
||||
|
||||
var styledPopup = new GUIStyle(EditorStyles.toolbarPopup)
|
||||
{
|
||||
alignment = TextAnchor.MiddleCenter,
|
||||
fontSize = 10,
|
||||
};
|
||||
|
||||
previewMaterial.SetTexture("_PreviewTex", texture);
|
||||
previewMaterial.SetInt("_PreviewChannel", previewChannel);
|
||||
|
||||
#if UNITY_2022_3_OR_NEWER
|
||||
if (texture.isDataSRGB)
|
||||
{
|
||||
previewMaterial.SetInt("_PreviewLinear", 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
previewMaterial.SetInt("_PreviewLinear", 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
var rect = GUILayoutUtility.GetRect(0, 0, Screen.width, 0);
|
||||
|
||||
EditorGUI.DrawPreviewTexture(rect, texture, previewMaterial, ScaleMode.ScaleAndCrop, 1, 0);
|
||||
|
||||
GUILayout.Space(2);
|
||||
|
||||
GUILayout.BeginHorizontal();
|
||||
|
||||
GUILayout.Label((UnityEngine.Profiling.Profiler.GetRuntimeMemorySizeLong(texture) / 1024f / 1024f).ToString("F2") + " mb", styledText);
|
||||
GUILayout.Space(-1);
|
||||
GUILayout.Label(texture.width.ToString() + " px", styledText);
|
||||
GUILayout.Space(-1);
|
||||
GUILayout.Label(texture.graphicsFormat.ToString(), styledText);
|
||||
GUILayout.Space(-1);
|
||||
|
||||
#if UNITY_2022_3_OR_NEWER
|
||||
if (texture.isDataSRGB)
|
||||
{
|
||||
GUILayout.Label("sRGB", styledText);
|
||||
}
|
||||
else
|
||||
{
|
||||
GUILayout.Label("Linear", styledText);
|
||||
}
|
||||
#endif
|
||||
|
||||
GUILayout.Space(-1);
|
||||
|
||||
previewChannel = EditorGUILayout.Popup(previewChannel, new string[] { "RGB", "R", "G", "B", "A", "Split" }, styledPopup, GUILayout.MaxWidth(60));
|
||||
|
||||
GUILayout.EndHorizontal();
|
||||
|
||||
GUILayout.Space(10);
|
||||
|
||||
return previewChannel;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user