Send Help. My Buttons isn't working in Android build

I’ve been trying to figure out how to fix this for hours and its driving me crazy already.

So, here how it works.

  1. I have this one panel
  2. Then I generated a bunch of buttons on it, add a grid layout group, content size fitter, Nothing special. Just making sure my buttons will fit in the panel.
  3. Then I add ‘Event Triggers’ to every single of this buttons. These are BeginDrag, OnPointEnter, and EndDrag. I’m not sure why I used OnPointerEnter instead of the regular Drag event but it also works.
  4. I put a simple Line Renderer that draws in the screen everytime the user starts dragging one of the tiles up to the ending tile. Some sort of a highlighting features because my game is a ‘Word Search’ game.
  5. All of this works magically good in Unity Editor.

But android build ended my happiness. The tiles in my grid can’t be clicked nor dragged. It just there doing nothing. But I can still click on the UI’s outside of the said panel like when tapping the ‘Menu’ button to return to menu. The panel isn’t the only one accepting touches and I can’t figure out why.

Here is the code of the functions I’m adding to the buttons:
btw, dragHighlight is the BeginDrag

public void dragHighlight(PointerEventData data, GameObject LetterContainer)
    {
        int r = Random.Range(0, randomFoundColors.Count);
        //=====================LINE RENDERER===========================//
        lr = Instantiate(lineRendererPrefab);
        lr.AddComponent<LineRenderer>();
        lr.GetComponent<LineRenderer>().enabled = true;
        lr.GetComponent<LineRenderer>().positionCount = 2;
        lr.GetComponent<LineRenderer>().material = new Material(Shader.Find("Mobile/Particles/Multiply"));
        lr.GetComponent<LineRenderer>().SetColors(randomFoundColors[r], randomFoundColors[r]);
        GameObject tile = LetterContainer;
        Vector2 tilePos = tile.transform.position;
        startPos = tilePos;
        endPos = tilePos;
        lr.GetComponent<LineRenderer>().SetPosition(1, endPos);
        lr.GetComponent<LineRenderer>().SetPosition(0, startPos);
        lr.GetComponent<LineRenderer>().useWorldSpace = true;
        lr.GetComponent<LineRenderer>().widthCurve = ac;
        lr.GetComponent<LineRenderer>().numCapVertices = 10;
        lr.GetComponent<LineRenderer>().GetComponent<LineRenderer>().sortingOrder = 4;
        //=====================END OF LINE RENDERER===========================//
        string tag = LetterContainer.tag;
        storeDiagonalID = tag;
        tag = tag.Substring(0, tag.Length - 1);
        Debug.Log("Tag is: " + tag);
        if (dragging == false)
        {
            letterSwipeSound();
            LetterContainer.GetComponent<Button>().interactable = false;
            for (int x = 0; x < maxVerticalLine; x++)
            {
                for (int y = 0; y < maxHorizontalLine; y++)
                {
                    if (gridSize[x, y] == LetterContainer)
                    {
                        firstLetter_x = x;
                        firstLetter_y = y;
                        break;
                    }
                    else
                        continue;
                }
            }
            dragging = true;
        }
    }

    public void pointerEnter(PointerEventData data, GameObject LetterContainer)
    {
        wordFormed = "";
        if (dragging == true)
        {
            //==========================LINE RENDERER=======================================//
            GameObject tile = LetterContainer;
            Vector3 tilePos = tile.transform.position;
            endPos = tilePos;
            lr.GetComponent<LineRenderer>().SetPosition(1, endPos);
            //=========================END OF LINE RENDERER================================//
            letterSwipeSound();
            for (int x = 0; x < maxVerticalLine; x++)
            {
                for (int y = 0; y < maxHorizontalLine; y++)
                {
                    if (gridSize[x, y] == LetterContainer)
                    {
                        lastLetter_x = x;
                        lastLetter_y = y;
                        break;
                    }
                    else
                        continue;
                }
            }
            if(firstLetter_x == lastLetter_x)
            {
                if(firstLetter_y < lastLetter_y)
                {
                    for (int y = firstLetter_y; y <= lastLetter_y; y++)
                    {
                        string selectedLetter = gridSize[firstLetter_x, y].GetComponentInChildren<TMPro.TMP_Text>().text;
                        wordFormed = wordFormed + selectedLetter;
                    }
                }
                else
                    for (int y = firstLetter_y; y >= lastLetter_y; y--)
                    {
                        string selectedLetter = gridSize[firstLetter_x, y].GetComponentInChildren<TMPro.TMP_Text>().text;
                        wordFormed = wordFormed + selectedLetter;
                    }

            }
            if(firstLetter_y == lastLetter_y)
            {
                if(firstLetter_x < lastLetter_x)
                {
                    for (int x = firstLetter_x; x <= lastLetter_x; x++)
                    {
                        string selectedLetter = gridSize[x, firstLetter_y].GetComponentInChildren<TMPro.TMP_Text>().text;
                        wordFormed = wordFormed + selectedLetter;
                    }
                }
                else
                {
                    for (int x = firstLetter_x; x >= lastLetter_x; x--)
                    {
                        string selectedLetter = gridSize[x, firstLetter_y].GetComponentInChildren<TMPro.TMP_Text>().text;
                        wordFormed = wordFormed + selectedLetter;
                    }
                }
            }
            if(firstLetter_x != lastLetter_x)
            {
                if(firstLetter_y != lastLetter_y)
                {
                    if(firstLetter_x < lastLetter_x)
                    {
                        int y = firstLetter_y;
                        for (int x = firstLetter_x; x <= lastLetter_x; x++)
                        {
                            string selectedLetter = gridSize[x, y].GetComponentInChildren<TMPro.TMP_Text>().text;
                            wordFormed = wordFormed + selectedLetter;
                            y++;
                        }
                    }
                    else
                    {
                        int y = firstLetter_y;
                        for (int x = firstLetter_x; x >= lastLetter_x; x--)
                        {
                            string selectedLetter = gridSize[x, y].GetComponentInChildren<TMPro.TMP_Text>().text;
                            wordFormed = wordFormed + selectedLetter;
                            y--;
                        }
                    }
                }
            }
            Debug.Log("Formed word is: " + wordFormed);
        }
    }

    public void dragEnd(PointerEventData data, GameObject LetterContainer)
    {
        int r = Random.Range(0, randomFoundColors.Count);
        var objects = GameObject.FindGameObjectsWithTag("words");
        var objectCount = objects.Length;
        foreach (var obj in objects)
        {
            string reversed = ReverseString(wordFormed);
            if (obj.GetComponent<TMPro.TMP_Text>().text.Trim().Equals(wordFormed) || obj.GetComponent<TMPro.TMP_Text>().text.Trim().Equals(reversed))
            {
                wordFoundSound();
                unableToFindWord = false;
                obj.GetComponent<TMPro.TMP_Text>().fontStyle = TMPro.FontStyles.Strikethrough;
                wordFormed = "";
                var letters = GameObject.FindGameObjectsWithTag("letters");
                var lettersCount = objects.Length;
                foreach (var let in letters)
                {
                    if (let.GetComponent<Image>().color == green)
                    {
                        let.GetComponent<Image>().color = randomFoundColors[r];
                        let.tag = "letters(found)";
                    }
                }
                var letters_diagonal = GameObject.FindGameObjectsWithTag(storeDiagonalID);
                var lettersCount_diagonal = objects.Length;
                foreach (var let in letters_diagonal)
                {
                    if (let.GetComponent<Image>().color == green)
                    {
                        let.GetComponent<Image>().color = randomFoundColors[r];
                    }
                }
                wordInStage--;
                if (wordInStage == 0)
                {
                    int medals = PlayerPrefs.GetInt("Medals") + 1;
                    PlayerPrefs.SetInt("Medals", medals);
                    PlayerPrefs.Save();
                    resultScreen.SetActive(true);
                    isGameComplete = true;
                }
                break;
            }
            else
                unableToFindWord = true;
        }
        if(unableToFindWord == true)
        {
            Destroy(lr);
            unableToFindWord = false;
        }
        foreach (GameObject _let in GameObject.FindObjectsOfType<GameObject>())
        {
            if (_let.name == "Letter(Clone)")
            {
                if (_let.GetComponent<Image>().color == green)
                {
                    _let.GetComponent<Image>().color = Color.white;
                }
            }

        }
        wordFormed = "";
        dragging = false;
        diagonalDragging = false;
    }

And I tried drawing a line renderer outside of the panel and it works so I think its not Line Renderer’s fault.
I also tried messing around with the Panel’s raycast, graphics raycasters, sorting order, etc thinking that something might be blocking the taps. Still no luck.

Any help? :frowning:

I finally figured out the problem. I’m such a noob :stuck_out_tongue:
In case, somebody is also having the same problem… Turns out the shader I’m using for the Line Renderer in Line 9
wasn’t included in the build.
To fix it just to to project settings > graphics > always include shaders > change the size if the shader you are using isn’t included > select your shader.