private void ActivateDisplay(string id, Transform target) { try { cams[id].target = target; DisplayLayoutFade fade = cams[id].GetComponent <DisplayLayoutFade>(); if (fade) { cams[id].StartCoroutine(fade.Fade(true)); } } catch { } }
public void SetDisplay(List <string> connectedUserIDs) { Queue <string> connectedQueue = new Queue <string>(); foreach (var connection in connectedUserIDs) { connectedQueue.Enqueue(connection); } List <DisplayLayoutCamera> list = cams.Values.ToList(); Transform t1; Transform t2; Transform t3; Transform t4; switch (connectedQueue.Count) { case 0: foreach (var cam in cams.Values) { if (cam.id == "observer") { continue; } DisplayLayoutFade fade = cam.GetComponent <DisplayLayoutFade>(); if (fade) { cam.StartCoroutine(fade.Fade(false)); } } break; case 1: t1 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); foreach (var key in cams.Keys) { if (key == "observer") { continue; } ActivateDisplay(key, t1); } return; case 2: t1 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); t2 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); ActivateDisplay("display1", t1); switch (DisplayLayoutCamera.config.displays.Length) { case 3: ActivateDisplay("display2", t2); return; case 4: ActivateDisplay("display2", t2); ActivateDisplay("display3", t1); return; case 5: ActivateDisplay("display2", t2); ActivateDisplay("display3", t1); ActivateDisplay("display4", t2); return; } return; case 3: t1 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); t2 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); t3 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); ActivateDisplay("display1", t1); ActivateDisplay("display2", t2); ActivateDisplay("display3", t3); ActivateDisplay("display4", t2); return; case 4: t1 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); t2 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); t3 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); t4 = CircleVRTrackingSystem.GetTracker(CircleVR.GetPair(connectedQueue.Dequeue()).trackerID).transform.Find("CenterAnchor"); ActivateDisplay("display1", t1); ActivateDisplay("display2", t2); ActivateDisplay("display3", t3); ActivateDisplay("display4", t4); return; } }