コード例 #1
0
        private static object GetDefaultValue(Type type, NodeFieldBaseAttribute att)
        {
            if (att.DefaultValue != null)
            {
                if ((BehaviorTreeArgsDict.IsEnumType(type) && BTEnvKey.None != att.DefaultValue.ToString()) || !BehaviorTreeArgsDict.IsEnumType(type))
                {
                    return(att.DefaultValue);
                }
            }
            object value = null;

            if (BehaviorTreeArgsDict.IsDoubleType(type))
            {
                value = default(double);
            }
            else if (BehaviorTreeArgsDict.IsStringType(type))
            {
                value = default(string);
            }
            else if (BehaviorTreeArgsDict.IsFloatType(type))
            {
                value = default(float);
            }
            else if (BehaviorTreeArgsDict.IsBoolType(type))
            {
                value = default(bool);
            }
            else if (BehaviorTreeArgsDict.IsIntType(type))
            {
                value = default(int);
            }
            else if (BehaviorTreeArgsDict.IsLongType(type))
            {
                value = default(long);
            }
            else if (BehaviorTreeArgsDict.IsIntArrType(type))
            {
                value = default(int[]);
            }
            else if (BehaviorTreeArgsDict.IsLongArrType(type))
            {
                value = default(long[]);
            }
            else if (BehaviorTreeArgsDict.IsDoubleArrType(type))
            {
                value = default(double[]);
            }
            else if (BehaviorTreeArgsDict.IsFloatArrType(type))
            {
                value = default(float[]);
            }
            else if (BehaviorTreeArgsDict.IsStringArrType(type))
            {
                value = default(string[]);
            }
            else if (BehaviorTreeArgsDict.IsObjectType(type))
            {
                value = default(Object);
            }
            else if (BehaviorTreeArgsDict.IsEnumType(type))
            {
                Array array = Enum.GetValues(type);
                value = array.GetValue(0).ToString();
            }
            else if (BehaviorTreeArgsDict.IsUnitConfigArrayType(type))
            {
            }
            else if (BehaviorTreeArgsDict.IsSpriteArrayType(type))
            {
                value = default(Sprite[]);
            }
            else if (BehaviorTreeArgsDict.IsObjectArrayType(type))
            {
                value = default(Object[]);
            }
            else if (BehaviorTreeArgsDict.IsConvertble(type))
            {
                value = 1f;
            }
            else
            {
                Log.Error($"行为树节点暂时未支持此类型:{type}!");
                return(null);
            }
            return(value);
        }