.vs
Assets
Library
APIUpdater
Artifacts
Bee
BuildPlayerData
PackageCache
com.unity.collab-proxy@2.5.2
com.unity.editorcoroutines@1.0.0
com.unity.ext.nunit@1.0.6
com.unity.feature.development@1.0.1
com.unity.ide.rider@3.0.31
com.unity.ide.visualstudio@2.0.22
com.unity.ide.vscode@1.2.5
com.unity.modules.ai@1.0.0
com.unity.modules.androidjni@1.0.0
com.unity.modules.animation@1.0.0
com.unity.modules.assetbundle@1.0.0
com.unity.modules.audio@1.0.0
com.unity.modules.cloth@1.0.0
com.unity.modules.director@1.0.0
com.unity.modules.imageconversion@1.0.0
com.unity.modules.imgui@1.0.0
com.unity.modules.jsonserialize@1.0.0
com.unity.modules.particlesystem@1.0.0
com.unity.modules.physics2d@1.0.0
com.unity.modules.physics@1.0.0
com.unity.modules.screencapture@1.0.0
com.unity.modules.subsystems@1.0.0
com.unity.modules.terrain@1.0.0
com.unity.modules.terrainphysics@1.0.0
com.unity.modules.tilemap@1.0.0
com.unity.modules.ui@1.0.0
com.unity.modules.uielements@1.0.0
com.unity.modules.umbra@1.0.0
com.unity.modules.unityanalytics@1.0.0
com.unity.modules.unitywebrequest@1.0.0
com.unity.modules.unitywebrequestassetbundle@1.0.0
com.unity.modules.unitywebrequestaudio@1.0.0
com.unity.modules.unitywebrequesttexture@1.0.0
com.unity.modules.unitywebrequestwww@1.0.0
com.unity.modules.vehicles@1.0.0
com.unity.modules.video@1.0.0
com.unity.modules.vr@1.0.0
com.unity.modules.wind@1.0.0
com.unity.modules.xr@1.0.0
com.unity.performance.profile-analyzer@1.2.2
com.unity.settings-manager@2.0.1
com.unity.test-framework@1.1.33
com.unity.testtools.codecoverage@1.2.6
com.unity.textmeshpro@3.0.6
com.unity.timeline@1.7.6
com.unity.ugui@1.0.0
Documentation~
Editor
EventSystem
Properties
UI
PropertyDrawers
AspectRatioFitterEditor.cs
AspectRatioFitterEditor.cs.meta
ButtonEditor.cs
ButtonEditor.cs.meta
CanvasScalerEditor.cs
CanvasScalerEditor.cs.meta
ContentSizeFitterEditor.cs
ContentSizeFitterEditor.cs.meta
DropdownEditor.cs
DropdownEditor.cs.meta
GraphicEditor.cs
GraphicEditor.cs.meta
GridLayoutGroupEditor.cs
GridLayoutGroupEditor.cs.meta
HorizontalOrVerticalLayoutGroupEditor.cs
HorizontalOrVerticalLayoutGroupEditor.cs.meta
ImageEditor.cs
ImageEditor.cs.meta
InputFieldEditor.cs
InputFieldEditor.cs.meta
InterceptedEventsPreview.cs
InterceptedEventsPreview.cs.meta
LayoutElementEditor.cs
LayoutElementEditor.cs.meta
LayoutPropertiesPreview.cs
LayoutPropertiesPreview.cs.meta
MaskEditor.cs
MaskEditor.cs.meta
MenuOptions.cs
MenuOptions.cs.meta
PrefabLayoutRebuilder.cs
PrefabLayoutRebuilder.cs.meta
PropertyDrawers.meta
RawImageEditor.cs
RawImageEditor.cs.meta
RectMask2DEditor.cs
RectMask2DEditor.cs.meta
ScrollRectEditor.cs
ScrollRectEditor.cs.meta
ScrollbarEditor.cs
ScrollbarEditor.cs.meta
SelectableEditor.cs
SelectableEditor.cs.meta
SelfControllerEditor.cs
SelfControllerEditor.cs.meta
SliderEditor.cs
SliderEditor.cs.meta
SpriteDrawUtility.cs
SpriteDrawUtility.cs.meta
TextEditor.cs
TextEditor.cs.meta
ToggleEditor.cs
ToggleEditor.cs.meta
EventSystem.meta
Properties.meta
UI.meta
UnityEditor.UI.asmdef
UnityEditor.UI.asmdef.meta
Runtime
Tests
CHANGELOG.md
CHANGELOG.md.meta
Editor.meta
LICENSE.md
LICENSE.md.meta
README.md
README.md.meta
Runtime.meta
Tests.meta
package.json
package.json.meta
com.unity.visualscripting@1.9.4
PackageManager
PlayModeViewStates
PlayerDataCache
ScriptAssemblies
Search
ShaderCache
SplashScreenCache
StateCache
UIElements
AnnotationManager
ArtifactDB
ArtifactDB-lock
BuildPlayer.prefs
BuildSettings.asset
EditorOnlyScriptingSettings.json
EditorOnlyVirtualTextureState.json
EditorSnapSettings.asset
EditorUserBuildSettings.asset
InspectorExpandedItems.asset
LastBuild.buildreport
LastSceneManagerSetup.txt
LibraryFormatVersion.txt
MonoManager.asset
SceneVisibilityState.asset
ScriptMapper
ShaderCache.db
SourceAssetDB
SourceAssetDB-lock
SpriteAtlasDatabase.asset
Style.catalog
expandedItems
ilpp.pid
Logs
Packages
ProjectSettings
UserSettings
obj
.vsconfig
Assembly-CSharp.Player.csproj
Assembly-CSharp.csproj
TM1.sln
Unity.CollabProxy.Editor.csproj
Unity.EditorCoroutines.Editor.csproj
Unity.Performance.Profile-Analyzer.Editor.csproj
Unity.PlasticSCM.Editor.csproj
Unity.Rider.Editor.csproj
Unity.Settings.Editor.csproj
Unity.TestTools.CodeCoverage.Editor.OpenCover.Model.csproj
Unity.TestTools.CodeCoverage.Editor.OpenCover.Mono.Reflection.csproj
Unity.TestTools.CodeCoverage.Editor.csproj
Unity.TextMeshPro.Editor.csproj
Unity.TextMeshPro.Player.csproj
Unity.TextMeshPro.csproj
Unity.Timeline.Editor.csproj
Unity.Timeline.Player.csproj
Unity.Timeline.csproj
Unity.VSCode.Editor.csproj
Unity.VisualScripting.Core.Editor.csproj
Unity.VisualScripting.Core.Player.csproj
Unity.VisualScripting.Core.csproj
Unity.VisualScripting.Flow.Editor.csproj
Unity.VisualScripting.Flow.Player.csproj
Unity.VisualScripting.Flow.csproj
Unity.VisualScripting.SettingsProvider.Editor.csproj
Unity.VisualScripting.Shared.Editor.csproj
Unity.VisualScripting.State.Editor.csproj
Unity.VisualScripting.State.Player.csproj
Unity.VisualScripting.State.csproj
Unity.VisualStudio.Editor.csproj
UnityEditor.TestRunner.csproj
UnityEditor.UI.csproj
UnityEngine.TestRunner.Player.csproj
UnityEngine.TestRunner.csproj
UnityEngine.UI.Player.csproj
UnityEngine.UI.csproj
111 lines
3.4 KiB
C#
111 lines
3.4 KiB
C#
![]() |
using UnityEngine;
|
||
|
using UnityEngine.UI;
|
||
|
|
||
|
namespace UnityEditor.UI
|
||
|
{
|
||
|
[CustomEditor(typeof(RawImage), true)]
|
||
|
[CanEditMultipleObjects]
|
||
|
/// <summary>
|
||
|
/// Custom editor for RawImage.
|
||
|
/// Extend this class to write a custom editor for a component derived from RawImage.
|
||
|
/// </summary>
|
||
|
public class RawImageEditor : GraphicEditor
|
||
|
{
|
||
|
SerializedProperty m_Texture;
|
||
|
SerializedProperty m_UVRect;
|
||
|
GUIContent m_UVRectContent;
|
||
|
|
||
|
protected override void OnEnable()
|
||
|
{
|
||
|
base.OnEnable();
|
||
|
|
||
|
// Note we have precedence for calling rectangle for just rect, even in the Inspector.
|
||
|
// For example in the Camera component's Viewport Rect.
|
||
|
// Hence sticking with Rect here to be consistent with corresponding property in the API.
|
||
|
m_UVRectContent = EditorGUIUtility.TrTextContent("UV Rect");
|
||
|
|
||
|
m_Texture = serializedObject.FindProperty("m_Texture");
|
||
|
m_UVRect = serializedObject.FindProperty("m_UVRect");
|
||
|
|
||
|
SetShowNativeSize(true);
|
||
|
}
|
||
|
|
||
|
public override void OnInspectorGUI()
|
||
|
{
|
||
|
serializedObject.Update();
|
||
|
|
||
|
EditorGUILayout.PropertyField(m_Texture);
|
||
|
|
||
|
AppearanceControlsGUI();
|
||
|
RaycastControlsGUI();
|
||
|
MaskableControlsGUI();
|
||
|
EditorGUILayout.PropertyField(m_UVRect, m_UVRectContent);
|
||
|
SetShowNativeSize(false);
|
||
|
NativeSizeButtonGUI();
|
||
|
|
||
|
serializedObject.ApplyModifiedProperties();
|
||
|
}
|
||
|
|
||
|
void SetShowNativeSize(bool instant)
|
||
|
{
|
||
|
base.SetShowNativeSize(m_Texture.objectReferenceValue != null, instant);
|
||
|
}
|
||
|
|
||
|
private static Rect Outer(RawImage rawImage)
|
||
|
{
|
||
|
Rect outer = rawImage.uvRect;
|
||
|
outer.xMin *= rawImage.rectTransform.rect.width;
|
||
|
outer.xMax *= rawImage.rectTransform.rect.width;
|
||
|
outer.yMin *= rawImage.rectTransform.rect.height;
|
||
|
outer.yMax *= rawImage.rectTransform.rect.height;
|
||
|
return outer;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Allow the texture to be previewed.
|
||
|
/// </summary>
|
||
|
|
||
|
public override bool HasPreviewGUI()
|
||
|
{
|
||
|
RawImage rawImage = target as RawImage;
|
||
|
if (rawImage == null)
|
||
|
return false;
|
||
|
|
||
|
var outer = Outer(rawImage);
|
||
|
return outer.width > 0 && outer.height > 0;
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Draw the Image preview.
|
||
|
/// </summary>
|
||
|
|
||
|
public override void OnPreviewGUI(Rect rect, GUIStyle background)
|
||
|
{
|
||
|
RawImage rawImage = target as RawImage;
|
||
|
Texture tex = rawImage.mainTexture;
|
||
|
|
||
|
if (tex == null)
|
||
|
return;
|
||
|
|
||
|
var outer = Outer(rawImage);
|
||
|
SpriteDrawUtility.DrawSprite(tex, rect, outer, rawImage.uvRect, rawImage.canvasRenderer.GetColor());
|
||
|
}
|
||
|
|
||
|
/// <summary>
|
||
|
/// Info String drawn at the bottom of the Preview
|
||
|
/// </summary>
|
||
|
|
||
|
public override string GetInfoString()
|
||
|
{
|
||
|
RawImage rawImage = target as RawImage;
|
||
|
|
||
|
// Image size Text
|
||
|
string text = string.Format("RawImage Size: {0}x{1}",
|
||
|
Mathf.RoundToInt(Mathf.Abs(rawImage.rectTransform.rect.width)),
|
||
|
Mathf.RoundToInt(Mathf.Abs(rawImage.rectTransform.rect.height)));
|
||
|
|
||
|
return text;
|
||
|
}
|
||
|
}
|
||
|
}
|