static Vector3 SpringDamp( Vector3& current, Vector3& target, Vector3& velocity, float smoothTime, float deltaTime, float frequency, float damping )

book_4_sparkGenerated
code_blocksInput

Description

The SpringDamp method is a static function of the Vector3 struct that performs a spring-damping operation on a vector. This method is useful for simulating spring-like behavior in animations or physics simulations, where a vector smoothly approaches a target vector over time, with a spring-like oscillation and damping effect.

Usage

To use the SpringDamp method, you need to provide the current vector, target vector, velocity vector, smooth time, delta time, frequency, and damping as parameters. The method will return a new Vector3 that represents the updated position after applying the spring-damping effect.

Parameters:

  • current: The current position vector that will be updated.
  • target: The target position vector that the current vector is moving towards.
  • velocity: The current velocity vector, which will be modified by the method to reflect the new velocity.
  • smoothTime: A float representing the time it takes to reach the target. Lower values result in faster movement.
  • deltaTime: A float representing the time step for the simulation, typically the frame time.
  • frequency: A float representing the frequency of the spring oscillation.
  • damping: A float representing the damping ratio, which affects how quickly the oscillations die out.

Example

Vector3 current = new Vector3(0, 0, 0);
Vector3 target = new Vector3(10, 10, 10);
Vector3 velocity = new Vector3(0, 0, 0);
float smoothTime = 0.3f;
float deltaTime = 0.016f; // Assuming 60 FPS
float frequency = 1.0f;
float damping = 0.5f;

Vector3 result = Vector3.SpringDamp(ref current, ref target, ref velocity, smoothTime, deltaTime, frequency, damping);

// The 'result' vector now contains the new position after applying spring-damping.