Exemple #1
0
    private List <GameObject> CreateFilenameButtonsList(FileInfo[] files, GameObject container)
    {
        List <GameObject> list = new List <GameObject>();

        for (int i = 0; i < files.Length; i++)
        {
            GameObject button = Instantiate(_ButtonPrefab);

            ButtonXR bxr = button.GetComponent <ButtonXR>();
            bxr.GetText().gameObject.transform.parent = button.transform;
            bxr.GetFront().gameObject.transform.parent = button.transform;
            bxr.GetBase().gameObject.transform.parent = button.transform;

            button.name                       = files[i].Name;
            button.transform.parent           = container.transform;
            button.transform.localPosition    = new Vector3(0.0f, -i * 0.022f, 0.0f);
            button.transform.localEulerAngles = new Vector3(0, 0, 0);

            string buttonText    = files[i].Name.Split('.')[0];
            float  scaleFactor   = 0.12f;
            int    numberOfChars = buttonText.Length;
            float  newScaleX     = scaleFactor * numberOfChars;

            float textWidthFactor = 0.007f;

            TextMeshPro   textMesh      = button.GetComponent <ButtonXR>().GetTextMeshPro();
            RectTransform rectTransform = textMesh.rectTransform;
            rectTransform.sizeDelta = new Vector2(textWidthFactor * numberOfChars, 0.035f * 0.4f);

            button.GetComponent <ButtonXR>().SetScaleY(0.5f);
            button.GetComponent <ButtonXR>().SetScaleX(newScaleX);

            button.GetComponent <ButtonXR>().SetText(buttonText);

            bxr.GetText().gameObject.transform.parent = bxr.GetFront().gameObject.transform;
            bxr.GetText().gameObject.transform.localPosition = new Vector3(0, 0.008f, 0.0018f);
            bxr.GetFront().gameObject.transform.parent = bxr.GetBase().gameObject.transform;

            list.Add(button);
        }

        return(list);
    }
Exemple #2
0
    IEnumerator SetButtonInactiveDelay(ButtonXR button, float time)
    {
        yield return(new WaitForSeconds(time));

        button.SetActive(false);
    }