Skip to main content

Types and Conversors

The NodeGraph features a conversion system that allows you to convert objects from one type to another.

image

How It Works

When starting the application, NodeGraph scans for all existing converters in the project. For each converter found, it creates an instance of the corresponding class, which will be used whenever a conversion between the defined types is needed.

Examples

Here are two examples of converters already implemented in the project:

Convert a Component to Transform:

[Description("component.transform")]
Transform ITypeConverter<Transform, Component>.Convert(Component source)
{
return source.transform;
}

Convert a Component to GameObject:

[Description("component.gameObject")]
GameObject ITypeConverter<GameObject, Component>.Convert(Component source)
{
return source.gameObject;
}

Check the CustomConverters class to see all the existing implementations. This will provide a solid foundation for understanding how new converters can be created and applied in your project.

Creating Custom Converters

The existing converters handle most common scenarios, but you can create custom converters to meet specific needs. To add a new converter:

  1. Create a New Class: Implement the ITypeConverter<TOut, TIn> interface in your new class.
  2. Define the Convert Method: Implement the Convert method to specify how the conversion should be performed.

To add a description for your converter, use the System.ComponentModel.DescriptionAttribute in your Method. This Attribute will display a tooltip with a description when you hover over the TypeConverter label in the Inspector.