override public void OnInspectorGUI() { serializedObject.Update(); BoneComponent component = (BoneComponent)target; EditorGUILayout.PropertyField(skeletonComponent); if (component.skeletonComponent != null) { String[] bones = new String[component.skeletonComponent.skeleton.Data.Bones.Count + 1]; bones[0] = "<None>"; for (int i = 0; i < bones.Length - 1; i++) { bones[i + 1] = component.skeletonComponent.skeleton.Data.Bones[i].Name; } Array.Sort <String>(bones); int boneIndex = Math.Max(0, Array.IndexOf(bones, boneName.stringValue)); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Bone"); EditorGUIUtility.LookLikeControls(); boneIndex = EditorGUILayout.Popup(boneIndex, bones); EditorGUILayout.EndHorizontal(); boneName.stringValue = bones[boneIndex];; } if (serializedObject.ApplyModifiedProperties() || (Event.current.type == EventType.ValidateCommand && Event.current.commandName == "UndoRedoPerformed") ) { component.bone = null; component.LateUpdate(); } }
public void ConvBone(BoneComponent bone) { if (_currentNode.Components == null) { _currentNode.Components = new List <SceneComponentContainer>(); } _currentNode.Components.Add(bone); // Collect all bones, later, when a WeightComponent is found, we can set all Joints _boneContainers.Push(_currentNode); }
public void RenderBone(BoneComponent bone) { SceneNodeContainer boneContainer = CurrentNode; float4x4 transform; if (!_boneMap.TryGetValue(boneContainer, out transform)) { _boneMap.Add(boneContainer, _rc.Model); } else { _boneMap[boneContainer] = _rc.Model; } }