/// <summary> /// Gets the data structure for the remote users' Magnet position. /// </summary> /// <param name="userId">User ID for which the remote Magnet info should be obtained.</param> /// <returns>RemoteMagnetInfo for the specified user.</returns> public RemoteMagnetInfo GetRemoteMagnetInfo(long userId) { //AnchorDebugText.text += "\nGet remote Magnet info"; RemoteMagnetInfo MagnetInfo; // Get the Magnet info if its already in the list, otherwise add it if (!RemoteMagnets.TryGetValue(userId, out MagnetInfo)) { MagnetInfo = new RemoteMagnetInfo(); MagnetInfo.UserID = userId; DebugLogText.text += "\n[Magnet] GetRemoteMagnetInfo > user ID: " + userId.ToString(); MagnetInfo.MagnetObject = this.gameObject; /* * remoteMagnets.Add(userId, MagnetInfo); * DebugLogText.text += "\n[Magnet] GetRemoteMagnetInfo > add Magnet to remote Magnets dictionary"; */ } return(MagnetInfo); }
/// <summary> /// Called when a remote user sends a Magnet transform. /// </summary> /// <param name="msg"></param> private void UpdateMagnetTransform(NetworkInMessage msg) { if (!transform.hasChanged && !hasUpdatedbyRemote) { hasUpdatedbyRemote = true; // Parse the message long userID = msg.ReadInt64(); Vector3 magnetPosition = CustomMessagesMyHolographicAcademy.Instance.ReadVector3(msg); Vector3 magnetDirection = CustomMessagesMyHolographicAcademy.Instance.ReadQuaternion(msg).eulerAngles; RemoteMagnetInfo magnetInfo = GetRemoteMagnetInfo(userID); magnetInfo.MagnetObject.transform.position = SharingPrefabObject.transform.TransformPoint(magnetPosition); /* * transform.position = GameObject.Find("Sharing").transform.TransformPoint( * CustomMessagesMyHolographicAcademy.Instance.ReadVector3(msg)); */ /* * transform.rotation = Quaternion.Inverse(GameObject.Find("Sharing").transform.rotation) * * transform.rotation; */ magnetInfo.MagnetObject.transform.rotation = Quaternion.Euler( SharingPrefabObject.transform.TransformDirection(magnetDirection)); /* * transform.rotation = Quaternion.Euler(GameObject.Find("Sharing").transform.TransformDirection( * CustomMessagesMyHolographicAcademy.Instance.ReadQuaternion(msg).eulerAngles)); * DebugLog2Text.text += "\nUpdate Magnet > " + * "\nPosition: " + transform.position.ToString(); */ DebugLog2Text.text += "\nNetworkInMessage msg > " + "\nuserID: " + userID.ToString(); } }