Converted everything to Meta XR All in One to make Eye-Tracking work again
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
using System.Globalization;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
public class InvisibleForLocalPlayer : NetworkBehaviour
|
||||
{
|
||||
// Start is called once before the first execution of Update after the MonoBehaviour is created
|
||||
void Start()
|
||||
{
|
||||
foreach (var r in GetComponentsInChildren<Renderer>())
|
||||
{
|
||||
r.enabled = !IsOwner;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 819e00be8a4fb934ba765757fac39145
|
||||
@@ -0,0 +1,47 @@
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
public class LocalOnly : NetworkBehaviour
|
||||
{
|
||||
public Behaviour[] componentsToDisable;
|
||||
public GameObject[] objectsToDisable;
|
||||
public GameObject[] objectsToTag;
|
||||
|
||||
public override void OnNetworkSpawn()
|
||||
{
|
||||
if (!IsOwner)
|
||||
{
|
||||
|
||||
foreach (var comp in componentsToDisable)
|
||||
{
|
||||
if (comp != null) comp.enabled = false;
|
||||
}
|
||||
|
||||
foreach (var obj in objectsToDisable)
|
||||
{
|
||||
if (obj != null) obj.SetActive(false);
|
||||
}
|
||||
|
||||
foreach(var obj in objectsToTag)
|
||||
{
|
||||
if (obj != null)
|
||||
{
|
||||
obj.tag = "RemotePlayer";
|
||||
obj.layer = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Kamera-Tags sicherstellen
|
||||
Camera cam = GetComponentInChildren<Camera>();
|
||||
if (cam != null && cam.CompareTag("MainCamera"))
|
||||
cam.enabled = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Nur der lokale Spieler darf "MainCamera" haben
|
||||
Camera cam = GetComponentInChildren<Camera>();
|
||||
if (cam != null)
|
||||
cam.tag = "MainCamera";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b7b9f0672db49f42af8fec3493cb307
|
||||
@@ -0,0 +1,40 @@
|
||||
using GhostSystem;
|
||||
using NUnit.Framework;
|
||||
using System.Collections.Generic;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
public class LocalPlayerReference : NetworkBehaviour
|
||||
{
|
||||
public static LocalPlayerReference Instance { get; private set; }
|
||||
|
||||
public List<Transform> myObjects;
|
||||
|
||||
public override void OnNetworkSpawn()
|
||||
{
|
||||
if (IsOwner)
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
Debug.Log("[LocalPlayerReference] Lokaler Spieler registriert.");
|
||||
|
||||
// Optional: Liste von Transforms vorbereiten
|
||||
GhostRecorderBatch ghostRecorder = FindFirstObjectByType<GhostRecorderBatch>();
|
||||
if (ghostRecorder != null)
|
||||
{
|
||||
foreach (Transform obj in myObjects)
|
||||
{
|
||||
ghostRecorder.TrackedObjects.Add(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
if (IsOwner && Instance == this)
|
||||
{
|
||||
Instance = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3717a60ecb65b8d4ca6b2937e711acda
|
||||
@@ -0,0 +1,61 @@
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
[RequireComponent(typeof(CharacterController))]
|
||||
public class OVRStickAndRoomscaleMovement : NetworkBehaviour
|
||||
{
|
||||
public float speed = 2.0f;
|
||||
public float gravity = -9.81f;
|
||||
public Transform cameraTransform; // CenterEyeAnchor
|
||||
public Transform rigRoot; // OVRCameraRig Root – wichtig für Höhe!
|
||||
|
||||
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
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (!IsOwner)
|
||||
return;
|
||||
|
||||
characterController = GetComponent<CharacterController>();
|
||||
|
||||
if (cameraTransform == null && Camera.main != null)
|
||||
cameraTransform = Camera.main.transform;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if (!IsOwner) return;
|
||||
|
||||
// 1. Real-World Position des Headsets bestimmen
|
||||
Vector3 headLocalPos = rigRoot.InverseTransformPoint(cameraTransform.position);
|
||||
|
||||
// 2. Höhe anpassen (Stehen, Hocken)
|
||||
float height = Mathf.Clamp(headLocalPos.y, minHeight, maxHeight);
|
||||
characterController.height = height;
|
||||
|
||||
// 3. Center des CharacterControllers so setzen, dass er immer den Spieler umschließt
|
||||
characterController.center = new Vector3(headLocalPos.x, height / 2f + characterController.skinWidth, headLocalPos.z);
|
||||
|
||||
// 4. Stick Movement
|
||||
Vector2 input = OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick);
|
||||
Vector3 move = cameraTransform.forward * input.y + cameraTransform.right * input.x;
|
||||
move.y = 0;
|
||||
move.Normalize();
|
||||
|
||||
characterController.Move(move * speed * Time.deltaTime);
|
||||
|
||||
// 5. Gravity
|
||||
velocity.y += gravity * Time.deltaTime;
|
||||
characterController.Move(velocity * Time.deltaTime);
|
||||
|
||||
if (characterController.isGrounded)
|
||||
{
|
||||
velocity.y = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c42ee6f42a0ca394b8ccd34d59ded058
|
||||
@@ -0,0 +1,51 @@
|
||||
using System.Globalization;
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
[RequireComponent(typeof(CharacterController))]
|
||||
public class OVRStickMovement : NetworkBehaviour
|
||||
{
|
||||
public float speed = 2.0f;
|
||||
public float gravity = -9.81f;
|
||||
public Transform cameraTransform;
|
||||
|
||||
private CharacterController characterController;
|
||||
private Vector3 velocity;
|
||||
|
||||
void Start()
|
||||
{
|
||||
if (!IsOwner)
|
||||
{
|
||||
Debug.LogError("Ja, ich bin Owner!");
|
||||
return;
|
||||
}
|
||||
characterController = GetComponent<CharacterController>();
|
||||
|
||||
if (cameraTransform == null && Camera.main != null)
|
||||
cameraTransform = Camera.main.transform;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
if(!IsOwner) return;
|
||||
// Linker Stick auslesen (PrimaryThumbstick)
|
||||
Vector2 input = OVRInput.Get(OVRInput.Axis2D.PrimaryThumbstick);
|
||||
|
||||
// Bewegung relativ zur Kameraausrichtung
|
||||
Vector3 move = cameraTransform.forward * input.y + cameraTransform.right * input.x;
|
||||
move.y = 0; // keine vertikale Bewegung
|
||||
move.Normalize();
|
||||
|
||||
characterController.Move(move * speed * Time.deltaTime);
|
||||
|
||||
// Gravity anwenden
|
||||
velocity.y += gravity * Time.deltaTime;
|
||||
characterController.Move(velocity * Time.deltaTime);
|
||||
|
||||
// Reset, wenn auf dem Boden
|
||||
if (characterController.isGrounded)
|
||||
{
|
||||
velocity.y = 0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b63991377c56bbc4abb6101f28a0f57c
|
||||
@@ -0,0 +1,14 @@
|
||||
using Unity.Netcode;
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerSpawner : NetworkBehaviour
|
||||
{
|
||||
public override void OnNetworkSpawn()
|
||||
{
|
||||
if (IsOwner)
|
||||
{
|
||||
var spawnPoints = GameObject.FindGameObjectsWithTag("SpawnPoint");
|
||||
transform.position = spawnPoints[Random.Range(0, spawnPoints.Length)].transform.position;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 46b4f915883259f4fbff20729a599ded
|
||||
Reference in New Issue
Block a user