bool _createRagdollManager() { RagdollManager ragMan = character.GetComponent <RagdollManager>(); if (!ragMan) { //ragMan = character.AddComponent<RagdollManager>(); ragMan = Undo.AddComponent <RagdollManager>(character); } if (useHumanoidSetupForRagdollBones) { Animator anim = character.GetComponent <Animator>(); if (!anim) { Debug.LogError("Cannot find 'animator' component." + " < " + this.ToString() + ">"); return(false); } ragdollCreator.pelvis = anim.GetBoneTransform(HumanBodyBones.Hips); ragdollCreator.leftHips = anim.GetBoneTransform(HumanBodyBones.LeftUpperLeg); ragdollCreator.leftKnee = anim.GetBoneTransform(HumanBodyBones.LeftLowerLeg); ragdollCreator.leftFoot = anim.GetBoneTransform(HumanBodyBones.LeftFoot); ragdollCreator.rightHips = anim.GetBoneTransform(HumanBodyBones.RightUpperLeg); ragdollCreator.rightKnee = anim.GetBoneTransform(HumanBodyBones.RightLowerLeg); ragdollCreator.rightFoot = anim.GetBoneTransform(HumanBodyBones.RightFoot); ragdollCreator.leftArm = anim.GetBoneTransform(HumanBodyBones.LeftUpperArm); ragdollCreator.leftElbow = anim.GetBoneTransform(HumanBodyBones.LeftLowerArm); ragdollCreator.rightArm = anim.GetBoneTransform(HumanBodyBones.RightUpperArm); ragdollCreator.rightElbow = anim.GetBoneTransform(HumanBodyBones.RightLowerArm); ragdollCreator.middleSpine = anim.GetBoneTransform(HumanBodyBones.Chest); ragdollCreator.head = anim.GetBoneTransform(HumanBodyBones.Head); ragdollCreator.totalMass = totalMass; ragdollCreator.CheckConsistency(); ragdollCreator.CalculateAxes(); ragdollCreator.Create(); ragMan.RagdollBones = new Transform[(int)BodyParts.BODY_PART_COUNT]; ragMan.RagdollBones[(int)BodyParts.Spine] = ragdollCreator.pelvis; ragMan.RagdollBones[(int)BodyParts.Chest] = ragdollCreator.middleSpine; ragMan.RagdollBones[(int)BodyParts.Head] = ragdollCreator.head; ragMan.RagdollBones[(int)BodyParts.LeftShoulder] = ragdollCreator.leftArm; ragMan.RagdollBones[(int)BodyParts.LeftElbow] = ragdollCreator.leftElbow; ragMan.RagdollBones[(int)BodyParts.RightShoulder] = ragdollCreator.rightArm; ragMan.RagdollBones[(int)BodyParts.RightElbow] = ragdollCreator.rightElbow; ragMan.RagdollBones[(int)BodyParts.LeftHip] = ragdollCreator.leftHips; ragMan.RagdollBones[(int)BodyParts.LeftKnee] = ragdollCreator.leftKnee; ragMan.RagdollBones[(int)BodyParts.RightHip] = ragdollCreator.rightHips; ragMan.RagdollBones[(int)BodyParts.RightKnee] = ragdollCreator.rightKnee; RagdollManager.AddBodyColliderScripts(ragMan); ragdollCreator = null; } return(true); }
void OnWizardCreate() { ragdollCreator.CheckConsistency(); ragdollCreator.CalculateAxes(); ragdollCreator.Create(); }