diff options
Diffstat (limited to 'ActiveRagdoll/Assets/TABG/Scripts')
-rw-r--r-- | ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs | 4 | ||||
-rw-r--r-- | ActiveRagdoll/Assets/TABG/Scripts/Data/Gravity.cs | 46 |
2 files changed, 42 insertions, 8 deletions
diff --git a/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs b/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs index 0c963ab..d52501b 100644 --- a/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs +++ b/ActiveRagdoll/Assets/TABG/Scripts/Action/Standing.cs @@ -43,13 +43,13 @@ namespace Rigging.Action //} //float max = forceCapCurve.Evaluate(forceCapTime); // 力的上限 float num = 0; - float max = 100; + float max = 10000; 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); + 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/Data/Gravity.cs b/ActiveRagdoll/Assets/TABG/Scripts/Data/Gravity.cs index 2e24f81..a428536 100644 --- a/ActiveRagdoll/Assets/TABG/Scripts/Data/Gravity.cs +++ b/ActiveRagdoll/Assets/TABG/Scripts/Data/Gravity.cs @@ -7,17 +7,51 @@ namespace Rigging.Data public class Gravity : RiggingDataBase { - // Start is called before the first frame update - void Start() + + private StandingDataHandler standingData; + + private Rigidbody[] m_rigidbodies; + + protected override void OnStart() { - + base.OnStart(); + standingData = player.status.standingData; + m_rigidbodies = player.status.body.allRigs; } - // Update is called once per frame - void Update() + + protected override void OnFixedUpdate() { - + base.OnFixedUpdate(); + + //gravityMultiplier = Mathf.Clamp(ragdoll.notRagdollMultiplier, 0.3f, 1f); + //if (interaction.hasTranscended) + //{ + // gravityMultiplier *= 0.3f; + //} + if (!(standingData.sinceGrounded > 0f)) + { + return; + } + for (int i = 0; i < m_rigidbodies.Length; i++) + { + if ((bool)m_rigidbodies[i]) + { + float num = Mathf.Clamp(m_rigidbodies[i].drag / 7f, 1f, 2f); + //num *= gravityMultiplier * standingData.sinceGrounded * scalingGravity * player.stats.gravityMultiplier; + //gravForce = Vector3.down * num; + //if (player.stats.gravityMultiplier < 0.99f) + //{ + // gravForce += Vector3.up * 20f * (1f - player.stats.gravityMultiplier); + //} + + m_rigidbodies[i].AddForce(Vector3.down * 5, ForceMode.Acceleration); + } + } + } + + } }
\ No newline at end of file |