object GetPropertyValueForCustomType(SerializedProperty objectWrapper)
    {
        TypeObjectWrapper.valueType vt = (TypeObjectWrapper.valueType)objectWrapper.FindPropertyRelative("_currentValueType").enumValueIndex;

        // objectWrapper.FindPropertyRelative(TypeObjectWrapper._valueObject[vt]);
        switch (vt)
        {
        case TypeObjectWrapper.valueType.Int:
            return(objectWrapper.FindPropertyRelative("_int").intValue);

        case TypeObjectWrapper.valueType.Float:
            return(objectWrapper.FindPropertyRelative("_float").floatValue);

        case TypeObjectWrapper.valueType.Bool:
            return(objectWrapper.FindPropertyRelative("_bool").boolValue);

        case TypeObjectWrapper.valueType.Vector3:
            return(objectWrapper.FindPropertyRelative("_vector3").vector3Value);

        case TypeObjectWrapper.valueType.UnityObject:
            return(objectWrapper.FindPropertyRelative("_unityObject").objectReferenceValue);

        default:
            Debug.LogWarning("shit aint implemented yet");
            return(null);
        }
    }
    void SetTypeObjectWrapperValue(SerializedProperty objectWrapper, System.Type pValueType)
    {
        TypeObjectWrapper.valueType vt = TypeObjectWrapper.getValueType(pValueType);
        objectWrapper.FindPropertyRelative("_currentValueType").enumValueIndex = (int)vt;
        //SerializedProperty prop = objectWrapper.FindPropertyRelative(TypeObjectWrapper._valueString[vt]);

        return;
    }
    object GetDefaultValueForType(TypeObjectWrapper.valueType vt)
    {
        switch (vt)
        {
        case TypeObjectWrapper.valueType.Int:
            return(0);

        case TypeObjectWrapper.valueType.Float:
            return(0f);

        case TypeObjectWrapper.valueType.Bool:
            return(false);

        case TypeObjectWrapper.valueType.Vector3:
            return(Vector3.zero);

        case TypeObjectWrapper.valueType.UnityObject:
            return(null);

        default:
            return(null);
        }
    }
    void DrawPropertyForCustomType(Rect trans, SerializedProperty objectWrapper)
    {
        TypeObjectWrapper.valueType vt = (TypeObjectWrapper.valueType)objectWrapper.FindPropertyRelative("_currentValueType").enumValueIndex;

        EditorGUI.PropertyField(trans, objectWrapper.FindPropertyRelative(TypeObjectWrapper._valueString[vt]), GUIContent.none);
    }