using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Rigging.Data { public class Gravity : RiggingDataBase { private StandingDataHandler standingData; private Rigidbody[] m_rigidbodies; private float gravityMultiplier = 1; private float scalingGravity = 60; protected override void OnStart() { base.OnStart(); standingData = player.status.standingData; m_rigidbodies = player.status.body.allRigs; } protected override void OnFixedUpdate() { base.OnFixedUpdate(); 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; Vector3 gravForce = Vector3.down * num; m_rigidbodies[i].AddForce(gravForce, ForceMode.Acceleration); } } } } }