From 8eedcd35743a5c157e1dbe3639a5c8aa311991ef Mon Sep 17 00:00:00 2001 From: laurids Date: Tue, 26 Oct 2021 16:56:47 +0200 Subject: [PATCH] Fix: Linien zwischen Distrikten --- .../Prefabs/UI/DistrictConnectionLine.prefab | 1 + Assets/GWConquest/Scripts/DistrictConnectionLine.cs | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Assets/GWConquest/Prefabs/UI/DistrictConnectionLine.prefab b/Assets/GWConquest/Prefabs/UI/DistrictConnectionLine.prefab index b798437..a1b1b56 100644 --- a/Assets/GWConquest/Prefabs/UI/DistrictConnectionLine.prefab +++ b/Assets/GWConquest/Prefabs/UI/DistrictConnectionLine.prefab @@ -61,6 +61,7 @@ MonoBehaviour: m_Material: {fileID: 0} m_Color: {r: 0.764, g: 0.764, b: 0.764, a: 0.34117648} m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 m_OnCullStateChanged: m_PersistentCalls: diff --git a/Assets/GWConquest/Scripts/DistrictConnectionLine.cs b/Assets/GWConquest/Scripts/DistrictConnectionLine.cs index 4c02087..47d7344 100644 --- a/Assets/GWConquest/Scripts/DistrictConnectionLine.cs +++ b/Assets/GWConquest/Scripts/DistrictConnectionLine.cs @@ -25,10 +25,12 @@ namespace GWConquest private List Quads = new List(); private RectTransform rt; + private Canvas canvas; private void Start() { rt = GetComponent(); + canvas = GetComponentInParent(); } private void FixedUpdate() @@ -78,14 +80,16 @@ namespace GWConquest Vector3 pos1 = RectTransformUtility.WorldToScreenPoint(cam, connection.district1.transform.position); Vector3 pos2 = RectTransformUtility.WorldToScreenPoint(cam, connection.district2.transform.position); - pos1 += (pos2 - pos1).normalized * endDistance; - pos2 += (pos1 - pos2).normalized * endDistance; + var scale = canvas.transform.localScale.x; + + pos1 += (pos2 - pos1).normalized * endDistance * scale; + pos2 += (pos1 - pos2).normalized * endDistance * scale; Vector3 diff = pos2 - pos1; float diffLength = diff.magnitude; rt.position = (pos1 + pos2) / 2f; - rt.sizeDelta = new Vector2(diffLength, rt.sizeDelta.y); + rt.sizeDelta = new Vector2(diffLength / scale, rt.sizeDelta.y); rt.rotation = Quaternion.FromToRotation(Vector3.right, diff);