public object GetValue()
        {
            if (this.value == null)
            {
                return(null);
            }

            string val = this.value.dataValue;
            Object obj = this.value.objectValue;

            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:
                return(obj);

            case ValueType.String:
                return(DataConverter.ToString(val));

            case ValueType.Boolean:
                return(DataConverter.ToBoolean(val));

            case ValueType.Float:
                return(DataConverter.ToSingle(val));

            case ValueType.Int:
                return(DataConverter.ToInt32(val));

            case ValueType.Color:
                return(DataConverter.ToColor(val));

            case ValueType.Vector2:
                return(DataConverter.ToVector2(val));

            case ValueType.Vector3:
                return(DataConverter.ToVector3(val));

            case ValueType.Vector4:
                return(DataConverter.ToVector4(val));

            default:
                return(null);
            }
        }
        public object GetValue(int index)
        {
            if (values == null || values.Count <= 0)
            {
                return(null);
            }

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

            Value value = this.values[index];

            if (value == null)
            {
                return(null);
            }

            string data = value.dataValue;

            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:
                return(value.objectValue);

            case ValueType.String:
                return(DataConverter.ToString(data));

            case ValueType.Boolean:
                return(DataConverter.ToBoolean(data));

            case ValueType.Float:
                return(DataConverter.ToSingle(data));

            case ValueType.Int:
                return(DataConverter.ToInt32(data));

            case ValueType.Color:
                return(DataConverter.ToColor(data));

            case ValueType.Vector2:
                return(DataConverter.ToVector2(data));

            case ValueType.Vector3:
                return(DataConverter.ToVector3(data));

            case ValueType.Vector4:
                return(DataConverter.ToVector4(data));

            default:
                return(null);
            }
        }