42 lines
1.1 KiB
C#
42 lines
1.1 KiB
C#
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using UnityEngine;
|
||
|
||
public class MoonGravityForce : MonoBehaviour
|
||
{
|
||
[Header("Швидкість обертання навколо Землі")]
|
||
[Range(0f, 100f)]
|
||
[SerializeField] private float orbitSpeed = 0.55f;
|
||
|
||
[Header("Нахил осі Місяця")]
|
||
[Range(0f, 180f)]
|
||
[SerializeField] private float axialTilt = 6.68f;
|
||
|
||
private PlanetSpin _parentSpin;
|
||
private Transform _parentTransform;
|
||
|
||
void Start()
|
||
{
|
||
_parentTransform = transform.parent;
|
||
_parentSpin = _parentTransform.GetComponent<PlanetSpin>();
|
||
|
||
transform.localRotation = Quaternion.Euler(0f, 0f, axialTilt);
|
||
}
|
||
|
||
void Update()
|
||
{
|
||
float parentRotationSpeed = _parentSpin != null ? _parentSpin.RotationSpeed : 0f;
|
||
|
||
float compensatedOrbit = orbitSpeed - parentRotationSpeed;
|
||
|
||
transform.RotateAround(
|
||
_parentTransform.position,
|
||
Vector3.up,
|
||
compensatedOrbit * Time.deltaTime
|
||
);
|
||
|
||
transform.LookAt(_parentTransform.position);
|
||
}
|
||
}
|
||
|