void Start() { m_Animator = GetComponent <Animator>(); m_Rigidbody = GetComponent <Rigidbody>(); m_Capsule = GetComponent <CapsuleCollider>(); motionMatcher = GetComponent <MotionMatcher>(); m_CapsuleHeight = m_Capsule.height; m_CapsuleCenter = m_Capsule.center; m_Rigidbody.constraints = RigidbodyConstraints.FreezeRotationX | RigidbodyConstraints.FreezeRotationY | RigidbodyConstraints.FreezeRotationZ; m_OrigGroundCheckDistance = m_GroundCheckDistance; }
protected virtual void OnSceneGUI() { float size = 0.1f; MotionMatcher motionMatcher = (MotionMatcher)target; currentMotionsData = motionMatcher.motionsData; if (currentMotionsData) { Transform child = motionMatcher.transform.Find(MotionMatchingBakeEditor.RootBoneName); Transform[] joints = child.GetComponentsInChildren <Transform>(); for (int i = 0; i < currentMotionsData.motionDataList.Length; i++) { MotionData motionData = currentMotionsData.motionDataList[i]; if (motionData.motionName == motionMatcher.bestMotionName || (string.IsNullOrEmpty(motionMatcher.bestMotionName) && motionData.motionName == defaultMotionName)) { for (int j = 0; j < motionData.motionFrameDataList.Length; j++) { MotionFrameData motionFrameData = motionData.motionFrameDataList[j]; for (int k = 0; k < motionFrameData.motionBoneDataList.Length; k++) { MotionBoneData motionBoneData = motionFrameData.motionBoneDataList[k]; Transform bone = joints[motionBoneData.boneIndex]; if (bone) { Vector3 bonePosition = motionBoneData.position; Handles.color = Color.green; Handles.SphereHandleCap(0, bonePosition, Quaternion.identity, size, EventType.Repaint); } } for (int l = 0; l < motionFrameData.motionTrajectoryDataList.Length; l++) { MotionTrajectoryData motionTrajectoryData = motionFrameData.motionTrajectoryDataList[l]; Handles.color = Color.yellow; Handles.SphereHandleCap(0, motionTrajectoryData.position, Quaternion.identity, size, EventType.Repaint); } } } } } }