public List <BoardCell> WithinCollider(Collider2D collider, Vector3 origin, Vector3 target) { collider.transform.position = origin; collider.transform.rotation = QuaternionUtility.LookRotation2D(target - origin); var colliders = new Collider2D[50]; var overlaps = Physics2D.OverlapCollider(collider, new ContactFilter2D(), colliders); collider.transform.position = new Vector3(-100, 0, 0); return(colliders.Take(overlaps).ToCellsPrecise().ToList()); }
public void Draw(List <Vector3> points) { this.lineRenderer.positionCount = points.Count; this.lineRenderer.SetPositions(points.ToArray()); if (points.Count < 2) { this.arrow.color = new Color(0, 0, 0, 0); return; } this.arrow.transform.position = points.Last(); this.arrow.transform.rotation = QuaternionUtility.LookRotation2D( points[points.Count - 1] - points[points.Count - 2]); Drawn?.Invoke(points); AnyPathDrawn?.Invoke(points); }
public static void LookAt2D(this Transform transform, Vector3 target) { transform.rotation = QuaternionUtility.LookRotation2D(target - transform.position); }