From e97794e4030104d78a1af09de41c8ea7f6fc61a3 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Wed, 10 Jul 2024 17:46:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=B0=84=E7=BA=BF=E9=81=BF=E9=9A=9C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Scripts/Card/CardDrag.cs | 1 + .../Assets/Scripts/Tool/getNodeTools.cs | 14 ++++++++------ .../Assets/Scripts/manager/MapUnityManager.cs | 4 ++++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs index 22556d34..4dc34061 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs @@ -272,6 +272,7 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag cardEntity.influencePreviewPool = handler.HandleAngleWithResult(euler); } cardEntity.influencePreviewPool=MathTool.RemoveDuplicates(cardEntity.influencePreviewPool); + getNodeTools.checkListPass(cardEntity.influencePreviewPool); } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs index 9a12d39f..66c978eb 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs @@ -1,6 +1,7 @@ using System; using System.Collections; using System.Collections.Generic; +using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; using UnityEngine.UIElements; @@ -97,13 +98,14 @@ public class getNodeTools } public static void checkListPass(List mapUnityList) - { + { for (int i = 0; i < mapUnityList.Count; i++) { + Debug.Log( "X是:" + mapUnityList[i].locationX + "Y是:" + mapUnityList[i].locationY); if (!checkNodePass(mapUnityList[i])) { - mapUnityList.RemoveAt(i); + mapUnityList.Remove(mapUnityList[i]); } } @@ -125,10 +127,10 @@ public class getNodeTools { canPass = false; } -/* if (!canPass) - {*/ - Debug.Log("距离是" + distance + ",结果是:" + canPass+",角度是:"+dir); - //} + if (mapUnity.locationX==1&& mapUnity.locationY==5) + { + Debug.Log("距离是" + distance + ",结果是:" + canPass + ",角度是:" + dir + " " + layerMask.value + "ray是" + ray + "X是:" + mapUnity.locationX + "Y是:" + mapUnity.locationY); + } return canPass; } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs index 0f5b65a7..52b703a8 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs @@ -62,9 +62,13 @@ public class MapUnityManager : Singleton castPool.Remove(playerOn); } } + castPool=MathTool.RemoveDuplicates(castPool); + Debug.Log("去除前数量是" + castPool.Count); + getNodeTools.checkListPass(castPool); //castPool.Distinct().ToList(); //getNodeTools.checkListPass(castPool); //遍历影响池变色 + Debug.Log("数量是" + castPool.Count); for (int i = 0; i < castPool.Count; i++) { castPool[i].influenced = true; -- 2.30.2 From f95ac5d8c6663dbe8bc763265b97c55f131949d0 Mon Sep 17 00:00:00 2001 From: yjm484 <171359351@qq.com> Date: Thu, 11 Jul 2024 00:58:19 +0800 Subject: [PATCH 2/2] 0710BUGFIX --- .../Assets/Scripts/Card/CardDrag.cs | 10 +++++++- .../Scripts/Handler/EffectRangeHandler6_2.cs | 17 +++++++------ .../Assets/Scripts/Tool/getNodeTools.cs | 24 +++++++++---------- .../Assets/Scripts/manager/MapUnityManager.cs | 3 ++- 4 files changed, 30 insertions(+), 24 deletions(-) diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs index 4dc34061..6610106b 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Card/CardDrag.cs @@ -272,7 +272,15 @@ public class CardDrag : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDrag cardEntity.influencePreviewPool = handler.HandleAngleWithResult(euler); } cardEntity.influencePreviewPool=MathTool.RemoveDuplicates(cardEntity.influencePreviewPool); - getNodeTools.checkListPass(cardEntity.influencePreviewPool); + if (effectRange.Equals(EffectRange.range8_2)|| effectRange.Equals(EffectRange.range6_3)) + { + getNodeTools.checkListPass(cardEntity.influencePreviewPool, playerOnNode); + } + else + { + getNodeTools.checkListPass(cardEntity.influencePreviewPool, currentNode); + } + } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs index 3cd8362b..9c64f463 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Handler/EffectRangeHandler6_2.cs @@ -56,15 +56,14 @@ public class EffectRangeHandler6_2 : EffectRangeHandlerBase private void get6_2Node(MapUnity currentNode,int value) { - if (tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value,2)])) - { - tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)].unitPool[value]); - } - if (tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value,2)])) - { - tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)].unitPool[value]); - } + /*tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)].unitPool[value]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)].unitPool[value]);*/ tryGetNodeInfluencedable(currentNode.unitPool[value]); - + tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 2)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Subtract(value, 1)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 2)]); + tryGetNodeInfluencedable(currentNode.unitPool[counter.Add(value, 1)]); } } diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs index 66c978eb..1156ee9e 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/Tool/getNodeTools.cs @@ -97,32 +97,30 @@ public class getNodeTools } - public static void checkListPass(List mapUnityList) - { - - for (int i = 0; i < mapUnityList.Count; i++) + public static void checkListPass(List mapUnityList, MapUnity mapUnity) + { + + for (int i = mapUnityList.Count - 1; i >= 0; i--) { - Debug.Log( "X是:" + mapUnityList[i].locationX + "Y是:" + mapUnityList[i].locationY); - if (!checkNodePass(mapUnityList[i])) + if (!checkNodePass(mapUnityList[i], mapUnity)) { - mapUnityList.Remove(mapUnityList[i]); + mapUnityList.RemoveAt(i); } - } } - public static bool checkNodePass(MapUnity mapUnity) + public static bool checkNodePass(MapUnity mapUnity, MapUnity centerMapUnity) { LayerMask layerMask=new LayerMask(); int blockLayer = LayerMask.NameToLayer("Block"); layerMask |= (1 << blockLayer); bool canPass=true; //MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); - var playerOnNode=GameManager.Instance.player; - float distance = Vector3.Distance(playerOnNode.transform.position, mapUnity.transform.position); - Vector3 dir = mapUnity.transform.position - playerOnNode.transform.position; - Ray ray = new Ray(playerOnNode.transform.position, dir); + //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)) { canPass = false; diff --git a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs index 52b703a8..cec46f42 100644 --- a/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs +++ b/ColorlessWorld-2024-4-2/Assets/Scripts/manager/MapUnityManager.cs @@ -64,7 +64,8 @@ public class MapUnityManager : Singleton } castPool=MathTool.RemoveDuplicates(castPool); Debug.Log("去除前数量是" + castPool.Count); - getNodeTools.checkListPass(castPool); + MapUnity playerOnNode = GameManager.Instance.playerOn.transform.GetComponent(); + getNodeTools.checkListPass(castPool,playerOnNode); //castPool.Distinct().ToList(); //getNodeTools.checkListPass(castPool); //遍历影响池变色 -- 2.30.2