public override void OnInspectorGUI() { #if UNITY_5_5_OR_NEWER #else EditorUtility.SetSelectedWireframeHidden(m_SpriteMeshInstance.cachedRenderer, !m_SpriteMeshInstance.cachedSkinnedRenderer); #endif EditorGUI.BeginChangeCheck(); serializedObject.Update(); EditorGUILayout.PropertyField(m_SpriteMeshProperty); serializedObject.ApplyModifiedProperties(); if (EditorGUI.EndChangeCheck()) { UpdateSpriteMeshData(); UpdateRenderers(); SetupBoneList(); } serializedObject.Update(); EditorGUILayout.PropertyField(m_ColorProperty); if (m_MaterialsProperty.arraySize == 0) { m_MaterialsProperty.InsertArrayElementAtIndex(0); } EditorGUILayout.PropertyField(m_MaterialsProperty.GetArrayElementAtIndex(0), new GUIContent("Material"), true, new GUILayoutOption[0]); EditorGUILayout.Space(); EditorGUIExtra.SortingLayerField(new GUIContent("Sorting Layer"), m_SortingLayerID, EditorStyles.popup, EditorStyles.label); EditorGUILayout.PropertyField(m_SortingOrder, new GUIContent("Order in Layer")); EditorGUILayout.Space(); if (!HasBindPoses()) { List <Bone2D> bones = new List <Bone2D>(); EditorGUI.BeginChangeCheck(); Transform root = EditorGUILayout.ObjectField("Set bones", null, typeof(Transform), true) as Transform; if (EditorGUI.EndChangeCheck()) { if (root) { root.GetComponentsInChildren <Bone2D>(bones); } Undo.RegisterCompleteObjectUndo(m_SpriteMeshInstance, "set bones"); m_BoneTransformsProperty.arraySize = bones.Count; for (int i = 0; i < bones.Count; ++i) { m_BoneTransformsProperty.GetArrayElementAtIndex(i).objectReferenceValue = bones[i].transform; } UpdateRenderers(); } } EditorGUI.BeginChangeCheck(); if (mBoneList != null) { mBoneList.DoLayoutList(); } serializedObject.ApplyModifiedProperties(); if (EditorGUI.EndChangeCheck()) { UpdateRenderers(); } if (m_SpriteMeshInstance.spriteMesh) { if (SpriteMeshUtils.HasNullBones(m_SpriteMeshInstance)) { EditorGUILayout.HelpBox("Warning:\nBone list contains null references.", MessageType.Warning); } if (m_SpriteMeshInstance.spriteMesh.sharedMesh.bindposes.Length != m_SpriteMeshInstance.bones.Count) { EditorGUILayout.HelpBox("Warning:\nNumber of SpriteMesh Bind Poses and number of Bones does not match.", MessageType.Warning); } } }