Version: 2023.2+
This example demonstrates how to create a simple custom control with two attributes.
This example creates a custom control called MyElement
with two attributes and exposes it to UXML and UI(User Interface) Allows a user to interact with your application. Unity currently supports three UI systems. More info
See in Glossary Builder. This example also shows how to add a custom control to a UI in the UI Builder.
You can find the completed files that this example creates in this GitHub repository.
This guide is for developers who are familiar with Unity, UI Toolkit, and C# scripting. Before you start, get familiar with the following:
To create a new custom control class in C#, inherit it from the VisualElement
class. This allows you to create and use this element in C#, but won’t automatically expose it in UXML and UI Builder. To expose it, add the UxmlElement
attribute. To expose the attributes, add the UxmlAttribute
attribute to each property that you want to be visible in UXML and the UI Builder.
Assets
folder, create a C# script named MyElement.cs
with the following content:using UnityEngine.UIElements;
[UxmlElement]
partial class MyElement : VisualElement
{
[UxmlAttribute]
public string myString { get; set; } = "default_value";
[UxmlAttribute]
public int myInt { get; set; } = 2;
}