// ドロップを選択する処理 private void SelectDrop() { selectedDrop = board.GetNearestDrop(Input.mousePosition); var drop = board.InstantiateDrop(Input.mousePosition); drop.SetKind(selectedDrop.GetKind()); drop.SetSize((int)(board.dropWidth * 1.2f)); drop.SetDropAlpha(GrabedDropAlpha); grabedDropObject = drop.gameObject; selectedDrop.SetDropAlpha(SelectedDropAlpha); currentState = GameState.DropMove; }
// 対象のピースがマッチしているかの判定を行う private bool IsMatchDrop(Drop drop) { // ピースの情報を取得 var pos = GetDropBoardPos(drop); var kind = drop.GetKind(); // 縦方向にマッチするかの判定 MEMO: 自分自身をカウントするため +1 する var verticalMatchCount = GetSameKindDropNum(kind, pos, Vector2.up) + GetSameKindDropNum(kind, pos, Vector2.down) + 1; // 横方向にマッチするかの判定 MEMO: 自分自身をカウントするため +1 する var horizontalMatchCount = GetSameKindDropNum(kind, pos, Vector2.right) + GetSameKindDropNum(kind, pos, Vector2.left) + 1; return(verticalMatchCount >= GameManager.MachingCount || horizontalMatchCount >= GameManager.MachingCount); }