From 7a27d86effef209eaf282baf24e58f04a8a279c2 Mon Sep 17 00:00:00 2001 From: hecomi Date: Sun, 30 Oct 2016 19:03:25 +0900 Subject: [PATCH] consider aspect ratio in Multiple Monitor scene. --- .../Examples/Scenes/Multiple Monitors.unity | Bin 14088 -> 14072 bytes .../Scripts/MultipleMonitorCreator.cs | 22 ++++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/Assets/uDesktopDuplication/Examples/Scenes/Multiple Monitors.unity b/Assets/uDesktopDuplication/Examples/Scenes/Multiple Monitors.unity index 69ff890a566aed7070d0bb999b3a4b5974d16916..eb2fdc2971f16d8fa93024deec05eb8cc57fff53 100644 GIT binary patch delta 183 zcmeCk`;jZaz+fQAz+m=+fq{V^$TpZLpeg!IWp2Ifo1RxQxUc0z+j-tz+le7z`(!{WIIe0&=j2>IxXPQBee(@gZ}0V(!aLL10_Q@`t>tK zKV@cU@Bs37fLI!c88{Re7#Wxt7BVn2_yf5tKrDkM9taheMH3H(ipxR7Co3>}^5iBK qrDx_bR4`OBRBf(icGTLuOSgq-vy;IB7N!M`lRp~kY!)zm!3Y307$r;q diff --git a/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorCreator.cs b/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorCreator.cs index b116264..bfb6649 100644 --- a/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorCreator.cs +++ b/Assets/uDesktopDuplication/Examples/Scripts/MultipleMonitorCreator.cs @@ -3,17 +3,35 @@ public class MultipleMonitorCreator : MonoBehaviour { [SerializeField] GameObject monitorPrefab; - [SerializeField] Vector3 margin = new Vector3(20f, 0f, 0f); + [SerializeField] float scale = 10f; + [SerializeField] float margin = 1f; + [SerializeField] float ratio = 0.001f; void Start() { var monitors = uDesktopDuplication.Manager.monitors; var n = monitors.Count; + + var totalWidth = 0f; for (int i = 0 ; i < n; ++i) { var go = Instantiate(monitorPrefab); - go.transform.position = transform.position + margin * (i - n / 2f + 0.5f); + go.name = "Monitor " + i; var texture = go.GetComponent(); texture.monitorId = i; + go.transform.localScale = new Vector3(texture.monitor.width * ratio, 1f, texture.monitor.height * ratio); + go.transform.SetParent(transform); + totalWidth += texture.monitor.width * ratio * scale; + } + + totalWidth += margin * (n - 1); + var x = -totalWidth / 2; + for (int i = 0 ; i < n; ++i) { + var go = transform.FindChild("Monitor " + i); + var texture = go.GetComponent(); + var halfWidth = texture.monitor.width * ratio * scale / 2; + x += halfWidth; + go.transform.position = new Vector3(x, 0f, 0f); + x += halfWidth + margin; } } }