public void SetValue(object value)
        {
            if (this.value == null)
            {
                this.value = new Value();
            }

            switch (type)
            {
            case ValueType.Sprite:
            case ValueType.Texture2D:
            case ValueType.Texture3D:
            case ValueType.AudioClip:
            case ValueType.VideoClip:
            case ValueType.Material:
            case ValueType.Font:
            case ValueType.GameObject:
                this.value.objectValue = (Object)value;
                break;

            case ValueType.String:
                this.value.dataValue = DataConverter.GetString((string)value);
                break;

            case ValueType.Boolean:
                this.value.dataValue = DataConverter.GetString((bool)value);
                break;

            case ValueType.Float:
                this.value.dataValue = DataConverter.GetString((float)value);
                break;

            case ValueType.Int:
                this.value.dataValue = DataConverter.GetString((int)value);
                break;

            case ValueType.Color:
                this.value.dataValue = DataConverter.GetString((Color)value);
                break;

            case ValueType.Vector2:
                this.value.dataValue = DataConverter.GetString((Vector2)value);
                break;

            case ValueType.Vector3:
                this.value.dataValue = DataConverter.GetString((Vector3)value);
                break;

            case ValueType.Vector4:
                this.value.dataValue = DataConverter.GetString((Vector4)value);
                break;

            default:
                break;
            }
        }
        public void SetValue(int index, object obj)
        {
            if (values == null)
            {
                this.values = new List <Value>();
            }

            if (index < 0 || index > values.Count)
            {
                return;
            }

            if (index == values.Count)
            {
                this.values.Add(new Value());
            }

            Value value = this.values[index];

            if (value == null)
            {
                value         = new Value();
                values[index] = value;
            }

            switch (type)
            {
            case ValueType.Sprite:
            case ValueType.Texture2D:
            case ValueType.Texture3D:
            case ValueType.AudioClip:
            case ValueType.VideoClip:
            case ValueType.Material:
            case ValueType.Font:
            case ValueType.GameObject:
                value.objectValue = (Object)obj;
                break;

            case ValueType.String:
                value.dataValue = DataConverter.GetString((string)obj);
                break;

            case ValueType.Boolean:
                value.dataValue = DataConverter.GetString((bool)obj);
                break;

            case ValueType.Float:
                value.dataValue = DataConverter.GetString((float)obj);
                break;

            case ValueType.Int:
                value.dataValue = DataConverter.GetString((int)obj);
                break;

            case ValueType.Color:
                value.dataValue = DataConverter.GetString((Color)obj);
                break;

            case ValueType.Vector2:
                value.dataValue = DataConverter.GetString((Vector2)obj);
                break;

            case ValueType.Vector3:
                value.dataValue = DataConverter.GetString((Vector3)obj);
                break;

            case ValueType.Vector4:
                value.dataValue = DataConverter.GetString((Vector4)obj);
                break;

            default:
                break;
            }
        }