2015-05-02 3 views
0

Я пытаюсь выполнить следующую команду:Unity пользовательский редактор сериализации Vector3

[CustomEditor(typeof(MyObject))] 
public class MyObjectEditor : Editor { 

    public override void OnInspectorGUI(){ 
     MyObject t = (MyObject)target; 
     Mesh mesh = t.GetComponent<MeshFilter>().sharedMesh; 
     Vector3[] vertices = mesh.vertices; 
     EditorGUILayout.PropertyField(vertices); 
    } 
} 

Но я получаю эту ошибку:

Argument `#1' cannot convert `UnityEngine.Vector3[]' 
expression to type `UnityEditor.SerializedProperty' 

Что я могу сделать, чтобы положить в PropertyField в Vector3[] без поставить его в класс MyObject?

ответ

0

С Vector3[] тип не является SerializedProperty, вы не можете использовать метод PropertyField. Однако вы можете использовать Vector3Field:

for(int i = 0; i < mesh.vertices.Length; i++) 
{ 
    mesh.vertices[i] = EditorGUILayout.Vector3Field("Vertice " + i, mesh.vertices[i]); 
} 
Смежные вопросы