From 6479d850e99a38506177481ce246007ecb9adece Mon Sep 17 00:00:00 2001 From: mxssw Date: Fri, 26 Sep 2025 12:21:08 +0300 Subject: [PATCH] Worked on restart button. Unsuccessful, left it disabled. --- .../NetworkDiscoveryCanvasUI.cs | 33 ++++++++++++++++-- .../NewHandPresence/TutorialController.cs | 34 +++++++++---------- .../_PROJECT/Scenes/DeltaBuilding_base.unity | 4 +-- ProjectSettings/ProjectSettings.asset | 4 +-- 4 files changed, 51 insertions(+), 24 deletions(-) diff --git a/Assets/Fish-Networking-Discovery-main/NetworkDiscoveryCanvasUI.cs b/Assets/Fish-Networking-Discovery-main/NetworkDiscoveryCanvasUI.cs index 4d35ddf1..8ad28405 100644 --- a/Assets/Fish-Networking-Discovery-main/NetworkDiscoveryCanvasUI.cs +++ b/Assets/Fish-Networking-Discovery-main/NetworkDiscoveryCanvasUI.cs @@ -1,10 +1,13 @@ +using _PROJECT.NewHandPresence; using FishNet; using FishNet.Discovery; using FishNet.Managing.Scened; +using FishNet.Object; using System.Collections; using System.Collections.Generic; using System.Net; using TMPro; +using Unity.XR.CoreUtils; using UnityEngine; using UnityEngine.UI; @@ -61,13 +64,37 @@ public class NetworkMenuUI : MonoBehaviour StartCoroutine(HostAndSearchRoutine()); } + private void OnReload() { + /*if (!InstanceFinder.IsClient) + { + Debug.LogWarning("Reload can only be called from a client!"); + return; + } - //UnityEngine.SceneManagement.Scene currentScene = UnityEngine.SceneManagement.SceneManager.GetActiveScene(); - //UnityEngine.SceneManagement.SceneManager.LoadScene(currentScene.name); - + // Use the ClientManager.Objects dictionary + foreach (NetworkObject obj in InstanceFinder.ClientManager.Objects.) + { + if (obj.IsOwner) // This ensures it's YOUR local player + { + var xr = obj.GetComponentInChildren(); + if (xr != null) + { + Debug.Log("Found my XR Origin player."); + TutorialController tutorial = xr.GetComponent(); + if (tutorial != null) + { + tutorial._state = TutorialController.TutorialState.Initializing; + } + } + else + { + Debug.Log("My local player is not an XR Origin."); + } + } + }*/ } private void OnJoinMultiplayer() diff --git a/Assets/_PROJECT/Components/NewHandPresence/TutorialController.cs b/Assets/_PROJECT/Components/NewHandPresence/TutorialController.cs index af262939..15696c79 100644 --- a/Assets/_PROJECT/Components/NewHandPresence/TutorialController.cs +++ b/Assets/_PROJECT/Components/NewHandPresence/TutorialController.cs @@ -8,7 +8,7 @@ namespace _PROJECT.NewHandPresence { public class TutorialController : MonoBehaviour { - private enum State + public enum TutorialState { Initializing, Turn, @@ -34,7 +34,7 @@ namespace _PROJECT.NewHandPresence private SmartHandPresence _leftSmartHandPresence; private SmartHandPresence _rightSmartHandPresence; - private State _state = State.Initializing; + public TutorialState _state = TutorialState.Initializing; private Camera _camera; @@ -45,12 +45,12 @@ namespace _PROJECT.NewHandPresence private void Update() { - if (_state == State.Initializing) + if (_state == TutorialState.Initializing) { TryInitialize(); } - if (_state == State.WaitForGrip) + if (_state == TutorialState.WaitForGrip) { TryFindXRGrabInteractable(); } @@ -76,12 +76,12 @@ namespace _PROJECT.NewHandPresence UpdateState(_state.Next()); } - private void UpdateState(State newState) + private void UpdateState(TutorialState newState) { _state = newState; Debug.Log($"Tutorial state: {_state}"); - if (_state == State.Initializing) return; + if (_state == TutorialState.Initializing) return; SetHandsVisibility(true); _rightHintController.HideHint(); @@ -89,26 +89,26 @@ namespace _PROJECT.NewHandPresence switch (_state) { - case State.Initializing: + case TutorialState.Initializing: break; - case State.Turn: + case TutorialState.Turn: ShowTurnHint(); break; - case State.Move: + case TutorialState.Move: ShowLocomotionHint(); break; - case State.Teleport: + case TutorialState.Teleport: ShowTeleportHint(); break; - case State.WaitForGrip: + case TutorialState.WaitForGrip: SetHandsVisibility(true); break; - case State.Grip: + case TutorialState.Grip: SetHandsVisibility(false); CreateBillboard(_grabInteractable.gameObject, "Grab me!"); ShowGripHint(); break; - case State.Done: + case TutorialState.Done: SetHandsVisibility(true); DestroyBillboard(); break; @@ -215,28 +215,28 @@ namespace _PROJECT.NewHandPresence private void OnGripPerformed(SelectEnterEventArgs arg0) { - if (_state != State.Grip) return; + if (_state != TutorialState.Grip) return; Debug.Log("Grip performed"); UpdateState(_state.Next()); } private void OnTeleportPerformed(LocomotionSystem obj) { - if (_state != State.Teleport) return; + if (_state != TutorialState.Teleport) return; Debug.Log("Teleport performed"); UpdateState(_state.Next()); } private void OnMovePerformed(InputAction.CallbackContext obj) { - if (_state != State.Move) return; + if (_state != TutorialState.Move) return; Debug.Log("Move performed"); UpdateState(_state.Next()); } private void OnTurnPerformed(InputAction.CallbackContext obj) { - if (_state != State.Turn) return; + if (_state != TutorialState.Turn) return; Debug.Log("Turn performed"); UpdateState(_state.Next()); } diff --git a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity index b1407023..e0a36e13 100644 --- a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity +++ b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7dd7badbe55c6c5d293126f548bdaf3a2270c5b9602872c7ace191e998a6d05d -size 63238193 +oid sha256:eeb3656725e2398be926c1cf5a430c9c62b5d8fb98fa14b8c0e6708ce72ff84c +size 63238219 diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 896d8bb2..e29bfaf2 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58745c9321381389f20738b32b3dc4544842f32ad2e3992ddd439651246906a2 -size 26323 +oid sha256:7b0c8187989f051f17c8176a08dd62c09e6144fe6accce74a1dc37fbf1413599 +size 26632