|
|
|
@ -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<MapUnity>();
|
|
|
|
//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 (centerMapUnity.blocked == 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; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|