using InfinityPBR.ModularCharacterHelper; using Sirenix.OdinInspector.Editor.Validation; using VOID.Editor.AttributeValidator; [assembly: RegisterValidator(typeof(ModularPartValidator))] namespace VOID.Editor.AttributeValidator { public class ModularPartValidator : ValueValidator { protected override void Validate(ValidationResult result) { if (Value == null) return; ValidateBoneRoot(result); ValidateSkinnedRenderer(result); } private void ValidateBoneRoot(ValidationResult result) { if (Value.boneRoot) return; result.AddError($"{nameof(Value.boneRoot)} is required!"); } private void ValidateSkinnedRenderer(ValidationResult result) { if (Value.skinnedMeshRenderer) return; result.AddError($"{nameof(Value.skinnedMeshRenderer)} is required!"); } } }