private void Update()
        {
            if (currentActivationTime != -1 && currentActivationTime < activationTime)
            {
                currentActivationTime = MyMath.min(activationTime, currentActivationTime + Time.deltaTime);

                //to keep the leg in "reset" position while making raise from ragdoll
                step.step.reset(stepper.transform.position, stepper.transform.rotation);
                step.step.undockCurTime = 0;
                bones.setTarget(step.step.posAbs, step.step.footOrientation);

                if (currentActivationTime == activationTime)
                {
                    mixer.enabled = false;
                    switcher.canRiseFromRagdoll = false;
                    stepper.needsUpdate         = true;//finally acquire new layout
                }
                else
                {
                    mixer.progress = currentActivationTime / activationTime;
                }
            }

            if (isRagdollOld != isRagdoll)
            {
                isRagdollOld = isRagdoll;
                if (isRagdoll)
                {
                    bodyJoint.connectedBody = stepper.transform.GetComponent <Rigidbody>();
                    mixer.enabled           = false;
                    switcher.startRagdoll();
                    switcher.canRiseFromRagdoll = false;
                    step.enabled        = false;
                    bones.enabled       = false;
                    stepper.needsUpdate = true;
                }
                else
                {
                    bodyJoint.connectedBody = null;
                    switcher.stopRagdoll();
                    switcher.canRiseFromRagdoll = true;

                    currentActivationTime = 0;
                    mixer.progress        = 0;

                    bones.enabled = true;
                    //stepper.needsUpdate = true;//to activate new layout immediately, but then invisible leg will step while rasing from ragdoll
                    step.enabled = true;

                    mixer.enabled = true;
                }
            }
        }
Beispiel #2
0
        public void revive()
        {
            reviving = 0.5f;
            ragdoller.stopRagdoll();
            turnOnStepper();

            animator.enabled = true;
            animator.SetTrigger("Revive");
            animationToRagdoll.enabled  = true;
            animationToRagdoll.progress = 1;

            allToStepper.enabled  = true;
            allToStepper.progress = 0;
        }