summaryrefslogtreecommitdiff
path: root/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs')
-rw-r--r--ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs62
1 files changed, 38 insertions, 24 deletions
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs b/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs
index dd9a62c..0c963ab 100644
--- a/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs
+++ b/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs
@@ -1,3 +1,4 @@
+using Rigging.Data;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
@@ -9,37 +10,50 @@ namespace Rigging.Action
public class Standing : RiggingActionBase
{
- public Rigidbody[] rigsToLift; //Head, Torso
+ public RigidbodyMovement[] rigsToLift; //Head, Torso
- public float force;
+ public float offset = 0.95f;//0.95
+
+ private float muscleMultiplier = 1f;//1
+
+ private float standingMulti = 1f;
+
+ private StandingDataHandler standingData;
+
+ public AnimationCurve curve;
+
+ protected override void OnStart()
+ {
+ standingData = player.status.standingData;
+
+ }
protected override void OnFixedUpdate()
{
- foreach (var rig in rigsToLift)
- {
- rig.AddForce(Vector3.up * force, ForceMode.Acceleration);
- }
+ Stand(curve);
}
- //private void Stand(AnimationCurve curve)
- //{
- // float num = 0f;
- // if (input.isCrouching)
- // {
- // num = 0.35f;
- // }
- // float max = forceCapCurve.Evaluate(forceCapTime); // 力的上限
- // RigidbodyMovment[] array = rigsToLift;
- // foreach (RigidbodyMovment rigidbodyMovment in array)
- // {
- // // 施加一个向上的垂直向上的力,把角色吊起来
- // Vector3 forceDir = Vector3.up;
- // float forceMagnitude = standingMulti * muscleMultiplier * rigidbodyMovment.force * Mathf.Clamp(curve.Evaluate(standingData.distanceToGround / base.transform.localScale.x + num + offset + moveData.slopeVelocityStrenght * -0.2f), -100f, max);
- // rigidbodyMovment.rig.AddForce(
- // forceDir * forceMagnitude, ForceMode.Acceleration);
- // }
- //}
+ private void Stand(AnimationCurve curve)
+ {
+ //float num = 0f;
+ //if (input.isCrouching)
+ //{
+ // num = 0.35f;
+ //}
+ //float max = forceCapCurve.Evaluate(forceCapTime); // 力的上限
+ float num = 0;
+ float max = 100;
+ RigidbodyMovement[] array = rigsToLift;
+ foreach (RigidbodyMovement rigidbodyMovment in array)
+ {
+ // 施加一个向上的垂直向上的力,把角色吊起来
+ Vector3 forceDir = Vector3.up;
+ float forceMagnitude = standingMulti * muscleMultiplier * rigidbodyMovment.force * Mathf.Clamp(curve.Evaluate(standingData.distanceToGround /*/ base.transform.localScale.x + num + offset*/ /*+ moveData.slopeVelocityStrenght * -0.2f*/), -100f, max);
+ rigidbodyMovment.rig.AddForce(
+ forceDir * forceMagnitude, ForceMode.Acceleration);
+ }
+ }
}