internal void Set(Type type, string name) { if (_ints.IsTarget(type)) { _ints.Add(name); } else if (_floats.IsTarget(type)) { _floats.Add(name); } else if (_strings.IsTarget(type)) { _strings.Add(name, ""); } else if (_bools.IsTarget(type)) { _bools.Add(name); } else if (_enums.IsTarget(type)) { _enums.Add(type); } else if (_vector2s.IsTarget(type)) { _vector2s.Add(name); } else if (_vector3s.IsTarget(type)) { _vector3s.Add(name); } else if (_vector2Ints.IsTarget(type)) { _vector2Ints.Add(name); } else if (_vector3Ints.IsTarget(type)) { _vector3Ints.Add(name); } else if (_colors.IsTarget(type)) { _colors.Add(name); } else if (_arrayes.IsTarget(type)) { _arrayes.Add(name, type); } // 上記でヒットしなかった else if (IsClassOrStruct(type)) { var v = new Value(name); // フィールドから要素を構築 foreach (var field in type.GetFields(Flags)) { v.Set(field.FieldType, field.Name); } _values.Add(name, v); } else { Debug.LogError("Invalid Type: " + type.Name); } }