From c1e6bc43536d85e47aacdd410722aef85aea3a3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=BD=AF=E4=BB=B6204=E5=BC=A0=E6=99=AF=E7=A8=8B?= <980269297@qq.com> Date: Sat, 13 Jul 2024 15:50:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B0=84=E7=BA=BF=E5=AF=B9?= =?UTF-8?q?=E9=9A=9C=E7=A2=8D=E7=89=A9=E5=88=A4=E5=AE=9A=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Scenes/SampleScene.unity | 4 +-- .../Assets/Scripts/Tool/getNodeTools.cs | 28 +++++++++++++++---- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity index 8f806f85..282f760a 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity +++ b/ColorlessWorld-2024-4-2/Assets/Scenes/SampleScene.unity @@ -6479,7 +6479,6 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: d344126aa8082fa48b7e5f19eff09202, type: 3} m_Name: m_EditorClassIdentifier: - castPool: [] --- !u!1 &680060074 GameObject: m_ObjectHideFlags: 0 @@ -14400,7 +14399,6 @@ MonoBehaviour: step: 2 startPositionX: 1 startPositionY: 1 - influencePreviewPool: [] chooseNodeLayerMask: serializedVersion: 2 m_Bits: 64 @@ -17780,7 +17778,7 @@ MeshCollider: m_ProvidesContacts: 0 m_Enabled: 1 serializedVersion: 5 - m_Convex: 0 + m_Convex: 1 m_CookingOptions: 30 m_Mesh: {fileID: -5468021829708598221, guid: ae332737a5755ee499c32f566d3a2913, type: 3} --- !u!1660057539 &9223372036854775807 diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs index fa56d882..e339afe6 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs @@ -114,26 +114,42 @@ public class getNodeTools public static bool checkNodePass(MapUnity mapUnity, MapUnity centerMapUnity) { - LayerMask layerMask=new LayerMask(); + LayerMask layerMask = new LayerMask(); int blockLayer = LayerMask.NameToLayer("Block"); layerMask |= (1 << blockLayer); - bool canPass=true; + bool canPass = true; //MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); //var playerOnNode=GameManager.Instance.player; float distance = Vector3.Distance(centerMapUnity.transform.position, mapUnity.transform.position); Vector3 dir = mapUnity.transform.position - centerMapUnity.transform.position; Ray ray = new Ray(centerMapUnity.transform.position, dir); - if (Physics.Raycast(ray, out RaycastHit raycastHit, distance, layerMask.value)) + if (centerMapUnity.blocked == false) { - canPass = false; + if (Physics.Raycast(ray, out RaycastHit raycastHit, distance, layerMask.value)) + { + float disChar = distance - Vector3.Distance(centerMapUnity.transform.position, raycastHit.collider.transform.position); + Debug.Log(disChar); + if (disChar > 0.25) + { + canPass = false; + } + } } - if (mapUnity.locationX==1&& mapUnity.locationY==5) + else { - Debug.Log("距离是" + distance + ",结果是:" + canPass + ",角度是:" + dir + " " + layerMask.value + "ray是" + ray + "X是:" + mapUnity.locationX + "Y是:" + mapUnity.locationY); + //Debug.DrawRay (centerMapUnity.transform.position, dir,Color .white , distance); + if (Physics.Raycast(ray, out RaycastHit raycastHit, distance, layerMask.value)) + { + Debug.Log(raycastHit.collider.name); + canPass = false; + } } + + // Debug.Log("距离是" + distance + ",结果是:" + canPass + ",角度是:" + dir + " " + layerMask.value + "ray是" + ray + "X是:" + mapUnity.locationX + "Y是:" + mapUnity.locationY); return canPass; } + }