Files
Flight-Deck/Assets/Scripts/Altimeter.cs

28 lines
1.0 KiB
C#

using Unity.VisualScripting;
using UnityEngine;
public class Altimeter : MonoBehaviour
{
[Header("References")]
public Rigidbody rocketRigidbody; // Reference to the rocket's Rigidbody
[Header("Data")]
public double altitude = 0; // Current altitude
public double gh = 9.81f; // Gravitational acceleration
[Header("Settings")]
[SerializeField] private double G = 6.67408f * Mathf.Pow(10, -11); // Gravitational constant
[SerializeField] private double M = 5.972f * Mathf.Pow(10, 24); // Mass of Earth
[SerializeField] private double RE = 6.372f * Mathf.Pow(10, 6); // Radius of Earth
private double GM; // Gravitational parameter (G * M)
void Start()
{
GM = G * M; // Calculate the gravitational parameter
}
void Update()
{
altitude = rocketRigidbody.position.y; // Update altitude based on the rocket's vertical position
gh = (double)(GM / Mathf.Pow((float)(RE + altitude), 2)); // Calculate gravitational acceleration at current altitude
}
}