コード例 #1
0
        private static Variable ResolveValue(VariableDefinition definition, Variable value, Object errorContext, string invalidError, string variableName)
        {
            if (definition.Type == VariableType.Object && definition.Constraint is ObjectConstraint constraint && value.TryGetObject <Object>(out var obj))
            {
                var resolved = obj.GetAsObject(constraint.ObjectType);
                value = Variable.Object(resolved);
            }

            if (definition.Type != VariableType.Empty && !definition.IsValid(value))
            {
                Debug.LogWarningFormat(invalidError, variableName, errorContext, value);
            }

            return(value);
        }