public void UpdateTiles() { if (this.raycastMode != SGameGraphicRaycaster.RaycastMode.Sgame_tile) { return; } SGameGraphicRaycaster.Coord invalid = SGameGraphicRaycaster.Coord.Invalid; for (int i = 0; i < this.m_allItems.Count; i++) { SGameGraphicRaycaster.Item item = this.m_allItems[i]; this.CalcItemCoord(ref invalid, item); if (!invalid.Equals(ref item.m_coord)) { this.RemoveFromTileList(item); item.m_coord = invalid; this.AddToTileList(item); } } }
private void CalcItemCoord(ref SGameGraphicRaycaster.Coord coord, SGameGraphicRaycaster.Item item) { item.m_rectTransform.GetWorldCorners(this.corners); int num = 2147483647; int num2 = -2147483648; int num3 = 2147483647; int num4 = -2147483648; Camera worldCamera = this.canvas.worldCamera; for (int i = 0; i < this.corners.Length; i++) { Vector3 vector = CUIUtility.WorldToScreenPoint(worldCamera, this.corners[i]); num = Mathf.Min((int)vector.x, num); num2 = Mathf.Max((int)vector.x, num2); num3 = Mathf.Min((int)vector.y, num3); num4 = Mathf.Max((int)vector.y, num4); } coord.x = Mathf.Clamp(num / this.m_tileSizeX, 0, 3); coord.numX = Mathf.Clamp(num2 / this.m_tileSizeX, 0, 3) - coord.x + 1; coord.y = Mathf.Clamp(num3 / this.m_tileSizeY, 0, 3); coord.numY = Mathf.Clamp(num4 / this.m_tileSizeY, 0, 3) - coord.y + 1; }
public bool Equals(ref SGameGraphicRaycaster.Coord r) { return(r.x == this.x && r.y == this.y && r.numX == this.numX && r.numY == this.numY); }