public void Build(TileSet ts) { tiles = new GTileS[ts.XLength, ts.YLength]; foreach (var t in ts.AsEnumerable()) { var c = Instantiate(GTile); tiles[t.X, t.Y] = c.GetComponent <GTileS>(); var old = c.transform.localScale; var blarg = c.GetComponent <GTileOnClick>(); blarg.OnMouseHoverEnter += (s, e) => TileHoverEntered(s, new TileClickedEventArgs(t)); blarg.OnMouseHoverExit += (s, e) => TileHoverExited(s, new TileClickedEventArgs(t)); blarg.OnClick += (s, e) => Click(s, new TileClickedEventArgs(t)); c.transform.SetParent(this.transform); c.transform.localScale = new Vector3(old.x, old.y * (1 + t.Height * GTileS.HeightMultiplier), old.z); old = c.transform.position; c.transform.localPosition = new Vector3(t.X, old.y + t.Height * GTileS.HeightMultiplier - c.transform.localScale.y / 2, t.Y); } }