Version: 2021.3+
This example demonstrates how to bind a custom control to a native Unity type.
The example creates a custom control that displays a 2D image. It uses the custom control in a custom Editor for a new asset type, and it binds the custom control to a field in an asset of the new type.
You can find the completed files that this example creates in this GitHub repository.
This guide is for developers familiar with the Unity Editor, UI Toolkit, and C# scripting. Before you start, get familiar with the following:
Create a serialized object that contains a Texture2D.
bind-custom-control
to store the files.TextureAsset.cs
and replace its contents with the following:Create a custom control with C# that represents a reference to a 2D texture asset, and style it with USS.
Editor
.TexturePreviewElement.cs
.TexturePreviewElement.cs
with the following:Resources
.texture_preview_element.uss
and replace its contents with the following:Create the Inspector UI, and bind the custom control to the Texture2D object.
TextureAssetEditor.cs
and replace its contents with the following:Create a UXML file with a TexturePreviewElement, and set the binding-path
property to texture
. This binds the TexturePreviewElement to TextureAsset.texture
.
texture_asset_editor.uxml
and replace its contents with the following:TextureAsset
.TextureAsset.texture
changes.