I THINK IT FINALLY WORKS

This commit is contained in:
2025-04-02 09:34:18 +01:00
parent 140cbd646f
commit b9e55dd79c
3 changed files with 7 additions and 20 deletions

View File

@@ -9,8 +9,7 @@ public class GravityController
const float m_GravityScale = -20.0f;
// Private constructor to stop accidental creation
private GravityController()
{ }
private GravityController() { }
public static GravityController Instance()
{

View File

@@ -43,9 +43,11 @@ public class PortalCamera : MonoBehaviour
// Update is called every frame
void Update()
{
Vector3 offset = m_CapturePortal.PlayerOffset();
transform.parent.position = offset;
// Gets the offset of the player from the display portal
Vector3 offset = m_DisplayPortal.PlayerOffset();
transform.parent.position = m_CapturePortal.TranslateOffsetToSpace(m_DisplayPortal.PlayerOffset(), Vector3.zero);
// Translates it to the capture portal and assigns it to the camera position
Transform t = m_CapturePortal.transform.parent;
transform.parent.position = (t.position) + (-t.forward * offset.z) + (t.up * offset.y) + (-t.right * offset.x);
}
}

View File

@@ -18,13 +18,7 @@ public class PortalManager : MonoBehaviour
PortalCamera m_PortalCamera;
public PortalManager Linked() => m_OtherManager;
public Vector3 pos => transform.parent.position;
public Quaternion rot => transform.parent.rotation;
public void SetPos(Vector3 v) => transform.parent.position = v;
public Vector3 PlayerOffset() => m_PlayerPoint.position;
public Vector3 PlayerOffset() => m_PlayerPoint.localPosition;
// Start is called before the first frame update
void Start()
@@ -50,12 +44,4 @@ public class PortalManager : MonoBehaviour
{
m_PlayerPoint.position = CameraController.Instance().transform.position;
}
public Vector3 TranslateOffsetToSpace(Vector3 pos, Vector3 euler)
{
m_Rot.localEulerAngles = euler;
m_Pos.localPosition = pos;
return m_Pos.position;
}
}