Ejemplo n.º 1
0
    public void ResetRacer()
    {
        foreach (Rigidbody ragdoll in ragdollBones)
        {
            ragdoll.isKinematic         = true;
            ragdoll.networkView.enabled = false;
        }
        this.rigidbody.isKinematic = false;
        foreach (Collider collider in ragdollColliders)
        {
            collider.enabled = false;
        }
        dinoAnimator.enabled = true;
        foreach (Collider collider in playColliders)
        {
            collider.enabled = true;
        }
        move.enabled  = true;
        ragdollUpdate = empty;

        if (startPosition != null)
        {
            for (int i = 0; i < ragdollBones.Length; i++)
            {
                ragdollBones [i].transform.localPosition = startPosition [i];
                ragdollBones [i].transform.localRotation = startOrientation [i];
            }
        }
    }
Ejemplo n.º 2
0
 private void RestoreRacer()
 {
     for (int i = 0; i < ragdollBones.Length; i++)
     {
         ragdollBones[i].transform.rotation = Quaternion.Slerp(stopPose[i], startPose[i], restored);
     }
     restored += Time.deltaTime * (1 / recovery);
     if (restored >= 1.0F)
     {
         restored = 0.0F;
         Rigidbody shell = this.GetComponent <Rigidbody>();
         shell.transform.position = ragdoll.transform.position;
         ragdollUpdate            = ResetRacer;
     }
 }
Ejemplo n.º 3
0
/* ---------------- Private Functions -------------------------- */
    private IEnumerator timedRagdoll(float time, float percent)
    {
        for (int i = 0; i < ragdollBones.Length; i++)
        {
            startPose[i] = ragdollBones[i].rotation;
        }
        GoRagdollPartial(percent);
        yield return(new WaitForSeconds(time));

        for (int i = 0; i < ragdollBones.Length; i++)
        {
            stopPose[i] = ragdollBones[i].rotation;
        }
        RestoreRagdoll();
        ragdollUpdate = ResetRacer;
    }