123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- using Rokid.MRC;
- using System.Collections;
- using System.Collections.Generic;
- using Unity.Netcode;
- using UnityEngine;
- public class ServerSpaceCoordController : UnitySingleton<ServerSpaceCoordController>
- {
- SpaceCoordinateBehavior coordinateBehavior;
- public bool UseCustomMsg;
-
- public Dictionary<ulong, GameObject> clientCameraAnchor;
- public GameObject curCameraAnchor;
- public override void Awake()
- {
- base.Awake();
- coordinateBehavior = GetComponent<SpaceCoordinateBehavior>();
- coordinateBehavior.OnNetworkSpawnHook += OnNetworkSpawn;
- coordinateBehavior.OnNetworkDespawnHook += OnNetworkDespawn;
- }
- private void OnNetworkSpawn()
- {
- if(UseCustomMsg)
- {
- ServerMessageDispatcher.Instance.Init();
- }
- if(NetworkManager.Singleton.IsServer || NetworkManager.Singleton.IsHost)
- {
-
-
-
-
-
-
-
- }
- else
- {
- enabled = false;
- }
- }
- private void Init()
- {
- Debug.Log("ServerSpaceCoordController Init");
- }
- private void OnNetworkDespawn()
- {
- if(NetworkManager.Singleton.IsServer || NetworkManager.Singleton.IsHost)
- {
- NetworkManager.Singleton.SceneManager.OnSceneEvent -= OnSceneEvent;
- }
- }
-
- void OnSceneEvent(SceneEvent sceneEvent)
- {
- if(sceneEvent.SceneEventType != SceneEventType.LoadComplete)
- return;
-
- }
-
-
- public void ClientConfirmSpacePose(ulong clientId, SpacePose spacePose)
- {
-
- coordinateBehavior.UpdateClientSpacePose(clientId, spacePose);
- SpacePose serverSpacePose = default(SpacePose);
- if(spacePose.CalibrationMode == ARCalibrationMode.FaceTrack)
- {
-
- serverSpacePose = new SpacePose(clientId, Camera.main.transform.position, Camera.main.transform.rotation, spacePose.CalibrationMode);
- }
- else if(spacePose.CalibrationMode == ARCalibrationMode.SelfCalibration)
- {
- serverSpacePose = new SpacePose(clientId, MRCDriver.Instance.SelfCalibrationPhone.position, MRCDriver.Instance.SelfCalibrationPhone.rotation, spacePose.CalibrationMode);
- }
-
- coordinateBehavior.UpdateServerSpacePose(clientId, serverSpacePose);
-
- MessageCenter.SendMessage(GlobalDefine.SpaceBuildEnd, null);
- }
- public void ClientStartBuild(ulong clientID, ARCalibrationMode calibrationMode)
- {
- if(calibrationMode == ARCalibrationMode.FaceTrack)
- {
-
- UIManager.Instance.ShowConfirm(
- LocalizationMgr.Instance.GetTextByKey("BuildTitle"),
- string.Format(LocalizationMgr.Instance.GetTextByKey("BuildReq"), PlayerManager.Instance.GetPlayerData(clientID)?.PlayerName),
- ConfirmType.None);
- }
- else if(calibrationMode == ARCalibrationMode.SelfCalibration)
- {
-
- ResourceManager.Instance.CreatePhoneAnchor();
- }
- }
- public void ClientCancelBuild()
- {
- UIManager.Instance.ClosePanel(UIType.Confirm);
- }
-
- private void OnClientUpdateCameraPose(ulong clientId, SpacePose spacePose)
- {
-
- }
- }
|