Reduced nausea

This commit is contained in:
Pasha Bibko
2025-11-20 13:34:25 +00:00
parent 70a09156a1
commit 19b2c06fab
6 changed files with 33 additions and 22 deletions

View File

@@ -5,7 +5,10 @@ public class EnemyController : OrbitalPositionBehaviour
protected override void OnStart()
{
transform.position = new Vector3(0, 0, -200f);
m_OrbitalPosition.m_RadiusDistance = 0.2f;
m_OrbitalPosition.m_DistanceAlongRadius = Random.Range(0f, Mathf.PI * 2f);
m_OrbitalPosition.m_ObjectRadius = 0.2f;
m_OrbitalPosition.m_SpinSpeed = 0.7f;
}
public override void OnReachCentre()

View File

@@ -15,6 +15,9 @@ public class GlobalOrbitalSettings : MonoBehaviour
[SerializeField] GameObject m_RingPrefab;
public static GameObject RingPrefab => Instance.m_RingPrefab;
[SerializeField] GameObject m_EnemyPrefab;
public static GameObject EnemyPrefab => Instance.m_EnemyPrefab;
void Start() => Instance = this;
}

View File

@@ -1,17 +1,17 @@
using System.Collections.Generic;
using UnityEngine;
public class OrbitalPosition
[System.Serializable] public class OrbitalPosition
{
public int m_AttachedRing;
public float m_DistanceFromCentre;
public float m_RadiusDistance;
public float m_DistanceAlongRadius;
public float m_ObjectRadius = 0.1f;
public OrbitalPositionBehaviour m_Behaviour;
public readonly Transform m_Owner;
public int m_SpinSpeed = 1;
public float m_SpinSpeed = 1f;
public OrbitalPosition(GameObject owner)
{
@@ -21,8 +21,8 @@ public class OrbitalPosition
public Vector3 TranslateToVec3() => new
(
x: m_DistanceFromCentre * Mathf.Cos(m_RadiusDistance),
y: m_DistanceFromCentre * Mathf.Sin(m_RadiusDistance)
x: m_DistanceFromCentre * Mathf.Cos(m_DistanceAlongRadius),
y: m_DistanceFromCentre * Mathf.Sin(m_DistanceAlongRadius)
);
}
@@ -132,7 +132,7 @@ public class GlobalOrbitalPositionManager : MonoBehaviour
float distance = m_Distances[orbitalPosition.m_AttachedRing];
orbitalPosition.m_DistanceFromCentre = distance;
orbitalPosition.m_RadiusDistance = (orbitalPosition.m_RadiusDistance + Time.deltaTime * GlobalOrbitalSettings.RadiusSpeed) % (Mathf.PI * 2);
orbitalPosition.m_DistanceAlongRadius = (orbitalPosition.m_DistanceAlongRadius + Time.deltaTime * GlobalOrbitalSettings.RadiusSpeed * orbitalPosition.m_SpinSpeed) % (Mathf.PI * 2);
orbitalPosition.m_Owner.position = orbitalPosition.TranslateToVec3();
}
@@ -155,6 +155,9 @@ public class GlobalOrbitalPositionManager : MonoBehaviour
m_PlayerOrbitalPosition.m_Behaviour.OnCollision(orbital.m_Behaviour);
}
}
if (Random.Range(0, 20) == 0)
Instantiate(GlobalOrbitalSettings.EnemyPrefab);
}
public static void RegisterOrbitalPositionInstance(OrbitalPosition newInstance) =>
@@ -166,7 +169,7 @@ public class GlobalOrbitalPositionManager : MonoBehaviour
public abstract class OrbitalPositionBehaviour : MonoBehaviour
{
protected OrbitalPosition m_OrbitalPosition;
[SerializeField] protected OrbitalPosition m_OrbitalPosition;
private void Start()
{

View File

@@ -2,12 +2,12 @@ using UnityEngine;
public class PlayerController : OrbitalPositionBehaviour
{
public GameObject m_EnemyPrefab;
protected override void OnStart()
{
GlobalOrbitalPositionManager.SetPlayer(m_OrbitalPosition);
m_OrbitalPosition.m_RadiusDistance = 0.4f;
m_OrbitalPosition.m_ObjectRadius = 0.4f;
m_OrbitalPosition.m_SpinSpeed = 0.05f;
}
public void Update()
@@ -16,11 +16,6 @@ public class PlayerController : OrbitalPositionBehaviour
{
m_OrbitalPosition.m_AttachedRing += 1;
}
if (Input.GetKey(KeyCode.E))
{
Instantiate(m_EnemyPrefab);
}
}
public override void OnCollision(OrbitalPositionBehaviour other)