Overlay ve Toolbar

Unity editor içerisinde overlay ve toolbar oluşturma,

[Overlay(typeof(SceneView), "My Toolbar Overlay")]
class MyOverlay : Overlay, ICreateToolbar
{
    public override VisualElement CreatePanelContent()
    {
        return new Label("I'm the content shown in panel mode!");
    }

    public IEnumerable<string> toolbarElements
    {
        get
        {
            yield return MyToolbarItem.id;
        }
    }
}

Yukarıda örneklendirilen kod ile tool sahnedeki toolbar içerisinde kendimiz için düzenlenebilir bir toolbar yaratabiliyoruz.

Oluşturmuş olduğumuz overlay i toolbar içerisine sürüklediğimizde bu şekilde görünür.

Bu görünüm içeriğini inceleyecek olursak;

// Example toolbar element with multiple controls
[EditorToolbarElement(id, typeof(SceneView))]
class MyToolbarItem : OverlayToolbar
{
    public const string id = "MyToolbarItem";

    public MyToolbarItem()
    {
        var icon = AssetDatabase.LoadAssetAtPath<Texture2D>("Assets/Images/Images_v6/Ingame_Images/Number_1.png");
        Add(new EditorToolbarButton(icon, () => { Debug.Log("Hello!"); }));
        Add(new EditorToolbarButton(icon, () => { Debug.Log("Hello again!"); }));
        SetupChildrenAsButtonStrip();
    }
}

MyToolBarItem” sınıfı içeriğindeki ikonlar ve fonksiyonları ile bir grubu temsil etmekte. Bu şekilde basitçe bir toolbar elementi yaratıp bu buton ile ihtiyaç duyabileceğimiz bir fonksiyon oluşturabiliriz.


Domino King projesi içerisinde geliştirme sürecinde bir çok etkiye sahip 3. parti yazılımları dahil olunca bir geliştirme moduna ihtiyaç duydum ve bu doğrultuda geliştirmeler için böyle bir modu nasıl kolayca yazılıma dahil ederim diye düşünürken böyle bir çözüm üretmek aklıma geldi ve bu editör araçlarını kullanarak bir geliştirme modu Toggle ı oluşturdum. Belki sizin de işinize yarar düşüncesiyle şöyle kod örneğini bırakayım.

[EditorToolbarElement(id, typeof(SceneView))]
class DevModeToolBarItem : EditorToolbarToggle
{
    public const string id = "DEV-MODE";

    public DevModeToolBarItem()
    {
        text = " DEV-MODE ";
        icon = EditorGUIUtility.FindTexture("CustomTool");
        tooltip = "Activate to the dev-mode.";

        RegisterCallback<ChangeEvent<bool>>(OnToggleChange);
    }

    public void OnToggleChange(ChangeEvent<bool> evt)
    {
        Debug.Log("DEVELOPMENT MODE: " + evt.newValue);
    }
}

Yukarıdaki kod parçası ile kendinize ait bir Dev-Mode tool bar butonunuz oluşturulmuş oldu.

Yorum bırakın