public override void OnInspectorGUI() { DrawDefaultInspector(); DrawPoseGUI(); EditorGUILayout.Space(); using (new HorizontalGroup()) { GUIContent createNewGUIContent = new GUIContent("Create new pose", EditorGUIUtility.IconContent("Toolbar Plus").image); if (GUILayout.Button(createNewGUIContent)) { NuitrackPose newPose = NuitrackEditorHelper.CreateAsset <NuitrackPose>("Pose", SavePosePath); Selection.activeObject = newPose; } GUIContent copyNewGUIContent = new GUIContent("Duplicate pose", EditorGUIUtility.IconContent("TreeEditor.Duplicate").image); if (GUILayout.Button(copyNewGUIContent)) { string newName = string.Format("{0} (clone)", target.name); NuitrackPose copyPose = NuitrackEditorHelper.CreateAsset <NuitrackPose>(newName, SavePosePath); NuitrackPoseWrapper copyPoseWrapper = new NuitrackPoseWrapper(new SerializedObject(copyPose)); copyPoseWrapper.CopyFrom(poseWrapper); Selection.activeObject = copyPose; } } }
public void CopyFrom(NuitrackPoseWrapper sourcePose) { RelativeMode = sourcePose.RelativeMode; foreach (nuitrack.JointType jointType in this) this[jointType].CopyFrom(sourcePose[jointType]); serializedObject.ApplyModifiedProperties(); }
void SaveRuntimePose(UserData.SkeletonData skeleton) { string name = "Runtime pose"; NuitrackPose newPose = new NuitrackPose(name, skeleton); string saveFolder = SaveFolder.Replace(Application.dataPath, ""); string[] separatePath = saveFolder.Split(new char[] { '\\', '/' }, System.StringSplitOptions.RemoveEmptyEntries); NuitrackPose poseAsset = NuitrackEditorHelper.CreateAsset <NuitrackPose>(name, separatePath); NuitrackPoseWrapper nuitrackPoseWrapper = new NuitrackPoseWrapper(new SerializedObject(poseAsset)); nuitrackPoseWrapper.CopyFrom(newPose); Destroy(newPose); EditorApplication.isPlaying = false; Selection.activeObject = poseAsset; }
private void OnEnable() { NuitrackPreviewStage stage = CreateInstance <NuitrackPreviewStage>(); StageUtility.GoToStage(stage, true); stage.SceneSetup(target); Selection.activeObject = target; poseWrapper = new NuitrackPoseWrapper(serializedObject); skeletonMapper = new SkeletonMapperGUI <Transform>(NuitrackPoseWrapper.JointsMask, null, colorTheme); skeletonMapper.OnSelected += SkeletonMapper_OnSelected; skeletonPoseView = new SkeletonPoseView(null, NuitrackPoseWrapper.JointsMask, colorTheme); skeletonPoseView.OnBoneSetActive += OnBoneActivated; skeletonPoseView.OnBoneDelete += OnBoneDeactivated; skeletonPoseView.OnBoneRotate += SkeletonPoseView_OnBoneRotate; skeletonPoseView.OnBoneToleranceChanged += SkeletonPoseView_OnBoneToleranceChanged; SceneView.duringSceneGui += OnSceneGUI; }