init
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
using Sirenix.OdinInspector.Editor.Validation;
|
||||
using UnityEngine;
|
||||
using VOID.Editor.AttributeValidator;
|
||||
using VOID.Generic;
|
||||
using VOID.Generic.Triggers;
|
||||
|
||||
[assembly: RegisterValidator(typeof(DynamicTriggerValidator))]
|
||||
|
||||
namespace VOID.Editor.AttributeValidator
|
||||
{
|
||||
public class DynamicTriggerValidator : ValueValidator<IDynamicTrigger>
|
||||
{
|
||||
protected override void Validate(ValidationResult result)
|
||||
{
|
||||
if (Value is not Component component) return;
|
||||
|
||||
ValidateLayer(result, component);
|
||||
ValidateCollider(result, component);
|
||||
}
|
||||
|
||||
private void ValidateLayer(ValidationResult result, Component component)
|
||||
{
|
||||
if (LayerManager.CodeInMask(component.gameObject.layer, LayerManager.Trigger)) return;
|
||||
|
||||
result.AddError(
|
||||
$"This component uses <u>{nameof(IDynamicTrigger)}</u> which requires layer <u>{nameof(LayerManager.Trigger)}</u>!");
|
||||
}
|
||||
|
||||
private void ValidateCollider(ValidationResult result, Component component)
|
||||
{
|
||||
if (component.GetComponentInChildren<Collider>()) return;
|
||||
|
||||
result.AddError(
|
||||
$"This component uses <u>{nameof(IDynamicTrigger)}</u> which requires at least one <u>collider</u>!");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user