No description
Find a file
2026-05-18 20:53:00 +02:00
Editor Added component validators 2026-05-18 20:37:05 +02:00
Runtime Added component validators 2026-05-18 20:37:05 +02:00
~Images Added documentation 2026-05-17 22:29:59 +02:00
.gitignore Initial commit 2026-05-17 19:59:52 +00:00
Editor.meta Added initial version 0.1.0 2026-05-17 22:12:04 +02:00
LICENSE Initial commit 2026-05-17 19:59:52 +00:00
LICENSE.meta Added initial version 0.1.0 2026-05-17 22:12:04 +02:00
package.json Added component validators 2026-05-18 20:37:05 +02:00
package.json.meta Added initial version 0.1.0 2026-05-17 22:12:04 +02:00
README.md Updated readme 2026-05-18 20:53:00 +02:00
README.md.meta Added initial version 0.1.0 2026-05-17 22:12:04 +02:00
Runtime.meta Added initial version 0.1.0 2026-05-17 22:12:04 +02:00
~Images.meta Added documentation 2026-05-17 22:29:59 +02:00

Description

A tool to help validate data across scenes, prefabs and scriptable objects.

Editor Window

Unity Windows

Hierachy Window Project Window

Component Validators

public sealed class ComponentValidatorMeshCollider : IComponentValidator<MeshCollider>
{
    public void Validate(MeshCollider component, List<ValidatorResult> results)
    {
        if (component.sharedMesh == null)
            results.Add(ValidatorResult.Create(EValidatorSeverity.Error, "Missing mesh"));
    }
}

Attribute Validators

The field attribute:

[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = true)]
public sealed class RequiredAttribute : Attribute
{
    private readonly EValidatorSeverity _severity;

    public RequiredAttribute()
    {
        _severity = EValidatorSeverity.Error;
    }
    
    public RequiredAttribute(EValidatorSeverity severity)
    {
        _severity = severity;
    }
}

The validator implements IAttributeValidator<T>, where T is the attribute and will automatically be found by the validator.

public sealed class Validator : IAttributeValidator<RequiredAttribute>
{
    public ValidatorResult Validate(RequiredAttribute attribute, object value)
    {
        var isValid = value is UnityEngine.Object obj ? obj != null : value != null;
        return isValid ? ValidatorResult.Valid : ValidatorResult.Create(attribute._severity, "Value is Null");
    }
}