// methods for: gravitizing rigidbodies // // method: gravitize all rigidbodies inside this gravity zone // protected override void gravitizeRigidbodiesInside() { base.gravitizeRigidbodiesInside(); // if attraction is currently enabled: // if (attractionEnabled) { // gravitize each of the tracked rigidbodies to gravitize by the calculation of the attractive force according to its position – and for the player, multiply the force to apply by the player's current gravity modifier as determined by any active Gravity Multipliers // foreach (Rigidbody rigidbodyToGravitize in rigidbodiesToGravitize) { if (!rigidbodyToGravitize.handHolding()) // so long as the rigidbody to gravitize is not currently held by a hand of the player { // determine the curved attractive force to apply // Vector3 forceToApply = curvedAttractiveForceForPosition(rigidbodyToGravitize.position); if (rigidbodyToGravitize.GetComponentInParent <Player>()) { forceToApply *= GravityMultiplier.currentGravityModifier(); } // apply the attractive force // rigidbodyToGravitize.velocity += (forceToApply * Time.fixedDeltaTime); } } } }
// methods for: gravitizing rigidbodies // // method: gravitize all rigidbodies inside this gravity zone // protected virtual void gravitizeRigidbodiesInside() { // gravitize each of the tracked rigidbodies to gravitize by the force vector setting – and for the player, multiply the force to apply by the player's current gravity modifier as determined by any active Gravity Multipliers // foreach (Rigidbody rigidbodyToGravitize in rigidbodiesToGravitize) { if (!rigidbodyToGravitize.handHolding()) // so long as the rigidbody to gravitize is not currently held by a hand of the player { Vector3 forceToApply = gravitationForce; if (rigidbodyToGravitize.GetComponentInParent <Player>()) { forceToApply *= GravityMultiplier.currentGravityModifier(); } rigidbodyToGravitize.velocity += (forceToApply * Time.fixedDeltaTime); } } }
// method: determine whether the player is within spherical gravity zonage that is actually enabled to gravitize the player with a nonzero force // public static bool playerWithinNonzerolyAffectingZonageSphere() { if (!playerWithinZonage || (GravityMultiplier.currentGravityModifier() == 0f)) { return(false); } else { foreach (Collider playerCollidingGravityZoneCollider in playerCollidingGravityZoneColliders) { GravityZone playerCollidingGravityZone = playerCollidingGravityZoneCollider.GetComponent <GravityZone>(); if (playerCollidingGravityZone.gravitizingEnabled && playerCollidingGravityZone.gravitizeRigidbodies && (playerCollidingGravityZone.gravitationForce != FloatsVector.zeroes) && playerCollidingGravityZoneCollider.GetComponent <GravityZoneSphere>()) { return(true); } } return(false); } }
// method: determine whether the player is within box gravity zonage that is actually enabled to gravitize the player // public static bool playerWithinAffectingZonageBox() { if (!playerWithinZonage || (GravityMultiplier.currentGravityModifier() == 0f)) { return(false); } else { foreach (Collider playerCollidingGravityZoneCollider in playerCollidingGravityZoneColliders) { GravityZone playerCollidingGravityZone = playerCollidingGravityZoneCollider.GetComponent <GravityZone>(); if (playerCollidingGravityZone.gravitizingEnabled && playerCollidingGravityZone.gravitizeRigidbodies && playerCollidingGravityZoneCollider.GetComponent <GravityZoneBox>()) { return(true); } } return(false); } }