void Awake() { rectTransform = GetComponent <RectTransform>(); squareSize = (int)rectTransform.rect.width / 2; gridSquares = new FridgeGridSquare[2, 5]; OnBeginDragFromTeam = new OnDragFromTeamEvent(); OnMouseEnterSquare = new OnMouseEnterSquare(); OnMouseExitSquare = new OnMouseExitSquare(); InitGridFruitons(); }
/// <summary> /// Initializes grid squares. /// </summary> private void InitGridFruitons() { for (int x = 0; x < 2; x++) { for (int y = 0; y < 5; y++) { var gridFruitonObject = Instantiate(GridSquareTemplate); gridFruitonObject.transform.SetParent(GridSquareTemplate.transform.parent); gridFruitonObject.transform.localScale = GridSquareTemplate.transform.localScale; gridFruitonObject.GetComponent <RectTransform>().localPosition = new Vector3(x * squareSize, -y * squareSize, 0); var square = gridFruitonObject.GetComponent <FridgeGridSquare>(); if (IsMirrored) { square.SetFruitonType(x == 1 ? (y == 2 ? 1 : 2) : 3); } else { square.SetFruitonType(x == 0 ? (y == 2 ? 1 : 2) : 3); } var xLoc = x; var yLoc = y; square.OnBeginDrag.AddListener(() => { if (AllowEdit) { OnBeginDragFromTeam.Invoke(square.KernelFruiton, GetBattlePositionFromGridPosition(xLoc, yLoc)); square.ResetDefaultBgColor(); square.ClearFruiton(); } }); square.OnMouseEnter.AddListener(() => OnMouseEnterSquare.Invoke(square)); square.OnMouseExit.AddListener(() => OnMouseExitSquare.Invoke(square)); square.SecondaryBgColor = Color.red; gridSquares[x, y] = square; } } GridSquareTemplate.gameObject.SetActive(false); }