public VariableValue Generate(IVariableStore variables) { if (_initializer != null && _initializer.IsValid && variables != null) { // if variables isn't an object there isn't a context that makes sense anyway, so null is fine var value = _initializer.Execute(variables as Object, variables); if (value.Type == Type) { return(value); } Debug.LogErrorFormat(_invalidInitializerError, variables, Type, value.Type); } return(VariableHandler.CreateDefault(Type, Constraint)); }