diff --git a/AVVR/Assets/Prefabs/Complete XR Origin Set Up Variant AVVR.prefab b/AVVR/Assets/Prefabs/Complete XR Origin Set Up Variant AVVR.prefab index 8ff51dec44b9133d535ffd70a33b5dc6e1bf5dc5..9ed5d0604576c6900ee9a0def5be90de5bb4e33b 100644 --- a/AVVR/Assets/Prefabs/Complete XR Origin Set Up Variant AVVR.prefab +++ b/AVVR/Assets/Prefabs/Complete XR Origin Set Up Variant AVVR.prefab @@ -60,8 +60,8 @@ GameObject: - component: {fileID: 24857229647593761} - component: {fileID: 7249712585786564757} - component: {fileID: 7321445143899016650} - - component: {fileID: 3450999096063229191} - component: {fileID: 3027666375171427404} + - component: {fileID: 5041059882800856174} m_Layer: 2 m_Name: Spectator Camera m_TagString: Untagged @@ -143,7 +143,7 @@ AudioListener: m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 5619876154759688209} m_Enabled: 1 ---- !u!114 &3450999096063229191 +--- !u!114 &3027666375171427404 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -152,20 +152,12 @@ MonoBehaviour: m_GameObject: {fileID: 5619876154759688209} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: eeadcb6c2b1156149b5b7de36c38b5e0, type: 3} + m_Script: {fileID: 11500000, guid: fb47d93d4e6cb45498b98c41d9fc2b4c, type: 3} m_Name: m_EditorClassIdentifier: - xrOrigin: {fileID: 8298045291338814965} - xrCamera: {fileID: 7277802327414017193} - positionOffset: {x: 0, y: 0.5, z: -1} - rotationOffset: {x: 0, y: 0, z: 0} - positionSmoothTime: 0.15 - rotationSmoothTime: 0.15 - smoothRotation: 1 - smoothPosition: 1 - positionDamping: 0.5 - rotationDamping: 0.5 ---- !u!114 &3027666375171427404 + enableWindowDrag: 1 + renderResolution: {x: 1920, y: 1080} +--- !u!114 &5041059882800856174 MonoBehaviour: m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} @@ -174,11 +166,19 @@ MonoBehaviour: m_GameObject: {fileID: 5619876154759688209} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fb47d93d4e6cb45498b98c41d9fc2b4c, type: 3} + m_Script: {fileID: 11500000, guid: eeadcb6c2b1156149b5b7de36c38b5e0, type: 3} m_Name: m_EditorClassIdentifier: - enableWindowDrag: 1 - renderResolution: {x: 1920, y: 1080} + xrOrigin: {fileID: 8298045291338814965} + xrCamera: {fileID: 7277802327414017193} + positionOffset: {x: 0, y: 0, z: 0} + rotationOffset: {x: 0, y: 0, z: 0} + positionSmoothTime: 0.15 + rotationSmoothTime: 0.15 + smoothRotation: 1 + smoothPosition: 1 + positionDamping: 0.5 + rotationDamping: 0.5 --- !u!1001 &1865269505668036478 PrefabInstance: m_ObjectHideFlags: 0 @@ -257,23 +257,23 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 3582865935180742671, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3582865935180742671, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3582865935180742671, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_SizeDelta.x - value: 352 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3582865935180742671, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.x - value: 200 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3582865935180742671, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.y - value: -111 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4063634363251406371, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: SnapTurnProvider @@ -309,43 +309,43 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 4843115453168706472, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4843115453168706472, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4843115453168706472, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_SizeDelta.x - value: 352 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4843115453168706472, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.x - value: 200 + value: 0 objectReference: {fileID: 0} - target: {fileID: 4843115453168706472, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.y - value: -245 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5233380041029087467, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5233380041029087467, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5233380041029087467, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_SizeDelta.x - value: 352 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5233380041029087467, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.x - value: 200 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5233380041029087467, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.y - value: -178 + value: 0 objectReference: {fileID: 0} - target: {fileID: 5603239251682444825, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMax.x @@ -389,23 +389,23 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 7559043828606092874, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7559043828606092874, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7559043828606092874, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_SizeDelta.x - value: 352 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7559043828606092874, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.x - value: 200 + value: 0 objectReference: {fileID: 0} - target: {fileID: 7559043828606092874, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.y - value: -312 + value: 0 objectReference: {fileID: 0} - target: {fileID: 8027956442804198582, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_Value @@ -413,23 +413,23 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 9223145543918184230, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMax.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 9223145543918184230, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchorMin.y - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 9223145543918184230, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_SizeDelta.x - value: 352 + value: 0 objectReference: {fileID: 0} - target: {fileID: 9223145543918184230, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.x - value: 200 + value: 0 objectReference: {fileID: 0} - target: {fileID: 9223145543918184230, guid: d312efb32cfde1a4592787da1e12f8ec, type: 3} propertyPath: m_AnchoredPosition.y - value: -44 + value: 0 objectReference: {fileID: 0} m_RemovedComponents: [] m_RemovedGameObjects: [] diff --git a/AVVR/Assets/_Scripts/SpectatorCamera.cs b/AVVR/Assets/_Scripts/SpectatorCamera.cs index 3e4eebf502e8e91e4cf9e60590aac9a82f50b430..e92e5733e64cc0673f1ca42f1de1a338c8651e02 100644 --- a/AVVR/Assets/_Scripts/SpectatorCamera.cs +++ b/AVVR/Assets/_Scripts/SpectatorCamera.cs @@ -7,8 +7,8 @@ public class SpectatorCamera : MonoBehaviour [Header("Target Settings")] [SerializeField] private Transform xrOrigin; [SerializeField] private Transform xrCamera; - [SerializeField] private Vector3 positionOffset = new Vector3(0f, 0.5f, -1f); - [SerializeField] private Vector3 rotationOffset; + [SerializeField] private Vector3 positionOffset = Vector3.zero; + [SerializeField] private Vector3 rotationOffset = Vector3.zero; [Header("Smoothing")] [SerializeField] private float positionSmoothTime = 0.15f; @@ -50,11 +50,11 @@ public class SpectatorCamera : MonoBehaviour private void UpdateTargetTransform() { - // Calculate target position with offset - targetPosition = xrCamera.position + xrCamera.TransformDirection(positionOffset); + // Match XR camera position exactly + targetPosition = xrCamera.position; - // Calculate target rotation with offset - targetRotation = xrCamera.rotation * Quaternion.Euler(rotationOffset); + // Match XR camera rotation exactly + targetRotation = xrCamera.rotation; } private void SmoothlyFollowTarget() diff --git a/AVVR/Assets/_Scripts/SpectatorWindow.cs b/AVVR/Assets/_Scripts/SpectatorWindow.cs index dba9e90806f3716d6ad13edf709a74eae86b5b8d..da5f3af1054f761badc6cc14582871178a50439d 100644 --- a/AVVR/Assets/_Scripts/SpectatorWindow.cs +++ b/AVVR/Assets/_Scripts/SpectatorWindow.cs @@ -41,14 +41,31 @@ public class SpectatorWindow : MonoBehaviour spectatorCam.targetTexture = renderTexture; } + private GUIStyle windowStyle; + + private void Start() + { + // Initialize window style + windowStyle = new GUIStyle(GUI.skin.window); + windowStyle.normal.background = MakeWindowBackground(new Color(0.2f, 0.2f, 0.2f, 1f)); + } + + private Texture2D MakeWindowBackground(Color color) + { + Texture2D tex = new Texture2D(1, 1); + tex.SetPixel(0, 0, color); + tex.Apply(); + return tex; + } + private void OnGUI() { if (!showWindow) return; - // Draw the window + // Draw the window with custom style windowRect = enableWindowDrag ? - GUI.Window(0, windowRect, DrawWindowContents, "Spectator View") : - GUI.Window(0, windowRect, DrawWindowContents, ""); + GUI.Window(0, windowRect, DrawWindowContents, "Spectator View", windowStyle) : + GUI.Window(0, windowRect, DrawWindowContents, "", windowStyle); } private void DrawWindowContents(int windowID)