Вы можете сделать это с 3 различными подходами:
1.Используйте const , вместо stati c переменных.
public class Optics : ScriptableObject
{
public const float minFOV = 0;
[Min(minFOV)]//this Min() doesn't really makes sense now, but anyway
public const float maxFOV = 5;
[Range(minFOV, maxFOV)]
public float currentFOV;
}
2.Используйте свойства , чтобы увидеть ошибки во время выполнения:
public class Optics : ScriptableObject
{
public const float minFOV = 0;
public const float maxFOV = 5;
[Range(minFOV, maxFOV)]
private float _currentFOV;
public float currentFOV
{
get => _currentFOV;
set
{
if (value > maxFOV || value < minFOV)
Debug.Log("ERROR");
else
_currentFOV = value;
}
}
}
3. Идея Эмануэля, которая является правильной, за исключением одной вещи, вам не нужно MonoBehaviour
, потому что ScriptableObjects
также есть OnValidate
метод.