public bool BoxMatchPylone(ColoredBox box, PyloneNode pylone) { if (pylone.Type == box.Type) { return(true); } return(false); }
public PyloneNode GetNearestPylone(Vector3 boxPosition) { PyloneNode currentPylone = PyloneNodeR1; float minDistance = float.MaxValue; foreach (PyloneNode p in listPylones) { float currentDistance = Vector3.Distance(boxPosition, p.transform.position); if (currentDistance < minDistance) { currentPylone = p; minDistance = currentDistance; } } return(currentPylone); }
public bool SetBoxOnClosestPylone(ColoredBox box) { PyloneNode closest = GetNearestPylone(box.transform.position); if (Vector3.Distance(box.transform.position, closest.transform.position) < 1) { box.UnGrab(); box.transform.position = new Vector3(closest.transform.position.x, closest.transform.position.y + 1.5f, closest.transform.position.z); bool isMatching = BoxMatchPylone(box, closest); if (isMatching) { closest.ShineV(); pyloneActived.Add(Array.IndexOf(listPylones, closest)); } return(isMatching); } return(false); }