Unity 6.3
0 онлайн 2 гостей 3 в системе
Вход

VersionControlObject.GetExtension

Declaration

public T GetExtension();

Возвращаемое значение

T Объект расширения, если он поддерживается VersionControlObject. null в противном случае.

Описание

Получает необязательный объект расширения.

Вы можете реализовать дополнительные расширения в вашем VersionControlObject для улучшения пользовательского опыта. Например, IIconOverlayExtension позволяет вам рисовать VCS состояния над значками ассетов. Полный список расширений см. в документации. Будущие версии Unity может добавить новые внутренние номера или прекратить вызов существующих.

Реализация по умолчанию GetExtension пытается VersionControlObject тип расширения. Это позволяет реализовать расширения непосредственно в вашем VersionControlObject derived class.

using UnityEditor.VersionControl;
using UnityEngine;

[VersionControl("Custom")] public class CustomVersionControlObject : VersionControlObject, IIconOverlayExtension { static Texture2D s_Icon;

static Texture2D GetIcon() { if (s_Icon == null) { s_Icon = new Texture2D(8, 8); for (var y = 0; y < s_Icon.height; ++y) { for (var x = 0; x < s_Icon.width; ++x) { var border = y == 0 || y == s_Icon.height - 1 || x == 0 || x == s_Icon.width - 1; var color = border ? Color.white : Color.red; s_Icon.SetPixel(x, y, color); } } s_Icon.Apply(); } return s_Icon; }

public void DrawOverlay(string assetPath, IconOverlayType type, Rect rect) { var topLeft = new Rect(rect.x, rect.y, 8, 8); var icon = GetIcon(); GUI.DrawTexture(topLeft, icon); } }

Для поддержки расширений, реализованных в отдельных классах, необходимо перезаписать этот метод и возвратить соответствующий объект.

using UnityEditor.VersionControl;
using UnityEngine;

public class CustomIconOverlayExtension : IIconOverlayExtension { public void DrawOverlay(string assetPath, IconOverlayType type, Rect rect) { var topLeft = new Rect(rect.x, rect.y, 8, 8); GUI.DrawTexture(topLeft, Texture2D.whiteTexture); } }

[VersionControl("Custom")] public class CustomVersionControlObject : VersionControlObject { readonly IIconOverlayExtension m_IconOverlayExtension = new CustomIconOverlayExtension();

public override T GetExtension<T>() { return m_IconOverlayExtension as T; } }

Дополнительные ресурсы: ,VersionControlObject,, ,IIconOverlayExtension,, ,IInspectorWindowExtension,, ,IPopupMenuExtension,, ,ISettingsInspectorExtension,.