diff options
author | chai <215380520@qq.com> | 2024-03-22 13:58:13 +0800 |
---|---|---|
committer | chai <215380520@qq.com> | 2024-03-22 13:58:13 +0800 |
commit | 6efd3e8c43a2249dc70952c222c5341bc76ab4ef (patch) | |
tree | a486ade58d3a33a9202801bb9f77cb22d7097dbd /ActiveRagdoll/Assets/TABG/Scripts | |
parent | 439ec6a176719ac8695f93c8edfe564dde92cf4c (diff) |
*misc
Diffstat (limited to 'ActiveRagdoll/Assets/TABG/Scripts')
3 files changed, 64 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); + } + } } diff --git a/ActiveRagdoll/Assets/TABG/Scripts/RigidbodyMovement.cs b/ActiveRagdoll/Assets/TABG/Scripts/RigidbodyMovement.cs new file mode 100644 index 0000000..860deca --- /dev/null +++ b/ActiveRagdoll/Assets/TABG/Scripts/RigidbodyMovement.cs @@ -0,0 +1,15 @@ +using System; +using UnityEngine; + +namespace Rigging +{ + + [Serializable] + public class RigidbodyMovement + { + public Rigidbody rig; + + public float force; + } + +} diff --git a/ActiveRagdoll/Assets/TABG/Scripts/RigidbodyMovement.cs.meta b/ActiveRagdoll/Assets/TABG/Scripts/RigidbodyMovement.cs.meta new file mode 100644 index 0000000..f7c9a06 --- /dev/null +++ b/ActiveRagdoll/Assets/TABG/Scripts/RigidbodyMovement.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6014643120461a146826351e4f7ff27e +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |