Cleaned up and commented version.

This commit is contained in:
Thorbjoern
2025-10-02 00:07:11 +02:00
parent 2b86d9f0a2
commit 4c613c3436
66 changed files with 260 additions and 1020 deletions
@@ -1,6 +1,9 @@
using Unity.Netcode;
using UnityEngine;
// Dieses Skript ist notwendig, um zum einen Smooth-Movement per Stick-Bewegung zu ermöglichen und zum anderen, dass der Character-Controller bei der physikalischen
// Roomscale-Bewegung dem/der NutzerIn folgt.
[RequireComponent(typeof(CharacterController))]
public class OVRStickAndRoomscaleMovement : NetworkBehaviour
{
@@ -12,13 +15,13 @@ public class OVRStickAndRoomscaleMovement : NetworkBehaviour
private CharacterController characterController;
private Vector3 velocity;
public float minHeight = 1.0f; // Kleinster Collider
public float maxHeight = 2.2f; // Größter Collider
public float skinWidth = 0.05f; // Charaktercontroller-Skin
public float minHeight = 1.0f; // Minimal mögliche Körpergröße (oder Größe wenn geduckt)
public float maxHeight = 2.2f; // Maximal mögliche Körpergröße
public float skinWidth = 0.05f; // Durchmesser des Kapsel-Colliders für den Körper. Darf nicht zu groß sein, um sich z.B. über Tische beugen zu können, ohne von der ingame-
// Physik weggeschoben zu werden.
void Start()
{
//if (!IsOwner) return;
//if (!IsOwner) return; Wäre nur bei Multiplayer wichtig.
characterController = GetComponent<CharacterController>();
@@ -28,9 +31,9 @@ public class OVRStickAndRoomscaleMovement : NetworkBehaviour
void Update()
{
//if (!IsOwner) return;
//if (!IsOwner) return; Wäre nur bei Multiplayer wichtig.
// 1. Real-World Position des Headsets bestimmen
// 1. Position des Kopfes in der realen Welt bestimmen.
Vector3 headLocalPos = rigRoot.InverseTransformPoint(cameraTransform.position);
// 2. Höhe anpassen (Stehen, Hocken)