/* * switch camera to follow ragdoll or animated hips based on whichever model is active */ void CheckCameraTarget() { if (!controlledCharacter) { camFollow.target = null; return; } //switch camera to follow ragdoll (or animated hips) if (ragdollController.ragdollRenderersEnabled == cameraTargetIsAnimatedHips) { cameraTargetIsAnimatedHips = !cameraTargetIsAnimatedHips; RagdollTransform hipBone = ragdollController.ragdoll.RootBone(); camFollow.target = cameraTargetIsAnimatedHips ? hipBone.followTarget.transform : hipBone.transform; camFollow.updateMode = cameraTargetIsAnimatedHips ? UpdateMode.Update : UpdateMode.FixedUpdate; } }
void AttachToCharacter(CharacterMovement character) { if (controlledCharacter != null) { //enable ai for the last controlled character controlledCharacter.GetComponent <AIControl>().enabled = true; } controlledCharacter = character; if (controlledCharacter != null) { //disable ai for our new controlled character controlledCharacter.GetComponent <AIControl>().enabled = false; ragdollController = controlledCharacter.GetComponent <RagdollController>(); RagdollTransform hipBone = ragdollController.ragdoll.RootBone(); camFollow.target = hipBone.followTarget.transform; camFollow.updateMode = UpdateMode.Update; } }