Значения / структуры значений отображаются как «блоки» памяти во многом как традиционная структура C, а не как реализация .Net, то есть: которая может содержать поля и методы.
Таким образом, типы значений должнытолько в них есть поля или конструктор.
Вам нужно будет разделить Vector3 на две части, одна из которых, возможно, будет называться Vector3Data, а Vector3 содержит все методы, необходимые для ее манипулирования.