コード例 #1
0
        private IEnumerator UpdateAvatar()
        {
            ResourceRequest request = Resources.LoadAsync <Texture2D>(AppStorage.Instance.CurrentCharacter.Avatar);

            do
            {
                yield return(new WaitForSeconds(.01f));
            }while (!request.isDone);
            Texture2D tex = request.asset as Texture2D;

            AppStorage.Instance.CurrentCharacter.AvatarBytes = tex.EncodeToPNG();
            AvatarImage.sprite = ViewUtility.CreateSpriteUseTexture(AppStorage.Instance.CurrentCharacter.AvatarBytes, AvatarImage);
            yield return(new WaitForEndOfFrame());
        }
コード例 #2
0
 private IEnumerator SetButtons()
 {
     if (mButtons.Count < mImageList.Count)
     {
         Debug.LogError("something went wrong when creating the buttons!");
     }
     if (AppStorage.Instance.CurrentCharacter == null)
     {
         UpdateSelectionBorder(0);
     }
     else
     {
         int index = mImageList.FindIndex(x => x == AppStorage.Instance.CurrentCharacter.Avatar);
         if (index >= 0)
         {
             UpdateSelectionBorder(index);
         }
         else
         {
             UpdateSelectionBorder(0);
         }
     }
     for (int i = 0; i < mButtons.Count; ++i)
     {
         if (i < mImageList.Count)
         {
             string          item    = string.Format(cImagePath, mImageList[i]);
             ResourceRequest request = Resources.LoadAsync <Texture2D>(item);
             do
             {
                 yield return(new WaitForSeconds(0.01f));
             }while (!request.isDone);
             Texture2D tex = request.asset as Texture2D;
             mButtons[i].GetComponent <Image>().sprite = ViewUtility.CreateSpriteUseTexture(tex.EncodeToPNG(), mButtons[i].GetComponent <Image>());
         }
         else
         {
             mButtons[i].SetActive(false);
         }
     }
     Title.text = cTitleText;
     LoadingSymbol.SetActive(false);
 }
コード例 #3
0
        private IEnumerator InitView()
        {
            float onePerCent = Screen.height / 100f;
            float multiplier = 0.18f;

            if (mFirstTime)
            {
                mFirstTime = false;
            }
            else
            {
                onePerCent = 1f;
                multiplier = 1f;
            }
            mTotalHeight = 0;
            const float  cWaitTime = 0.01f;
            DnDCharacter character = AppStorage.Instance.CurrentCharacter as DnDCharacter;
            // TOP:
            float         heightMultiplier = Screen.height * .2f / 160;
            Transform     currentParent    = transform.FindChild("Top");
            RectTransform rect             = currentParent.GetComponent <RectTransform>();

            rect.localScale = new Vector3(heightMultiplier, heightMultiplier, heightMultiplier);
            Image AvatarImage = currentParent.FindChild("Avatar").FindChild("AvatarMask").FindChild("Avatar").GetComponent <Image>();

            AvatarImage.sprite = ViewUtility.CreateSpriteUseTexture(character.AvatarBytes, AvatarImage);
            // MENU:
            // name:
            currentParent = transform.FindChild("Menu").FindChild("DragArea").FindChild("ScrollArea").FindChild("Name");
            Text text = currentParent.FindChild(cView).GetComponent <Text>();

            text.text = character.Name;
            text      = currentParent.FindChild(cInput).FindChild("Placeholder").GetComponent <Text>();
            text.text = character.Name;
            float current = currentParent.GetComponent <LayoutElement>().minHeight;

            currentParent.GetComponent <LayoutElement>().minHeight = current * multiplier * onePerCent;
            mTotalHeight += (int)currentParent.GetComponent <LayoutElement>().minHeight;
            UpdateNow     = true;
            currentParent.gameObject.SetActive(true);
            yield return(new WaitForSeconds(cWaitTime));

            // level / xp
            currentParent = transform.FindChild("Menu").FindChild("DragArea").FindChild("ScrollArea").FindChild("ExpLevel");
            currentParent.FindChild(cInput).FindChild("InputField").FindChild("Placeholder").GetComponent <Text>().text = character.Experience.ToString();
            currentParent.FindChild(cView).FindChild("Bottom").FindChild("Value").GetComponent <Text>().text            = character.Experience.ToString();
            currentParent.FindChild(cView).FindChild("Top").FindChild("Value").GetComponent <Text>().text = character.CharacterLevel.ToString();
            current = currentParent.GetComponent <LayoutElement>().minHeight;
            currentParent.GetComponent <LayoutElement>().minHeight = current * multiplier * onePerCent;
            mTotalHeight += (int)currentParent.GetComponent <LayoutElement>().minHeight;
            UpdateNow     = true;
            currentParent.gameObject.SetActive(true);
            yield return(new WaitForSeconds(cWaitTime));

            // abilities
            currentParent = transform.FindChild("Menu").FindChild("DragArea").FindChild("ScrollArea").FindChild("Attributes");
            SetAbilitiesTexts(currentParent);
            current = currentParent.GetComponent <LayoutElement>().minHeight;
            currentParent.GetComponent <LayoutElement>().minHeight = current * multiplier * onePerCent;
            mTotalHeight += (int)currentParent.GetComponent <LayoutElement>().minHeight;
            UpdateNow     = true;
            currentParent.gameObject.SetActive(true);
            yield return(new WaitForSeconds(cWaitTime));

            // gender:
            currentParent = transform.FindChild("Menu").FindChild("DragArea").FindChild("ScrollArea").FindChild("Gender");
            SetGenderText(currentParent);
            current = currentParent.GetComponent <LayoutElement>().minHeight;
            currentParent.GetComponent <LayoutElement>().minHeight = current * multiplier * onePerCent;
            mTotalHeight += (int)currentParent.GetComponent <LayoutElement>().minHeight;
            UpdateNow     = true;
            currentParent.gameObject.SetActive(true);
            yield return(new WaitForSeconds(cWaitTime));

            // race:
            currentParent = transform.FindChild("Menu").FindChild("DragArea").FindChild("ScrollArea").FindChild("Race");
            SetRaceText(currentParent);
            current = currentParent.GetComponent <LayoutElement>().minHeight;
            currentParent.GetComponent <LayoutElement>().minHeight = current * multiplier * onePerCent;
            mTotalHeight += (int)currentParent.GetComponent <LayoutElement>().minHeight;
            UpdateNow     = true;
            currentParent.gameObject.SetActive(true);
            yield return(new WaitForSeconds(cWaitTime));

            // alignment:
            currentParent = transform.FindChild("Menu").FindChild("DragArea").FindChild("ScrollArea").FindChild("Alignment");
            Image           image   = currentParent.FindChild(cView).FindChild("AlignmentImage").GetComponent <Image>();
            string          path    = mAlignmentPaths[(int)character.Alignment];
            ResourceRequest request = Resources.LoadAsync <Texture2D>(path);

            do
            {
                yield return(new WaitForSeconds(.001f));
            }while (!request.isDone);
            Texture2D tex = request.asset as Texture2D;

            byte[] array = tex.EncodeToPNG();
            image.sprite = ViewUtility.CreateSpriteUseTexture(array, image);
            yield return(new WaitForSeconds(.001f));

            text      = currentParent.FindChild(cInput).FindChild("Top").FindChild("BoxSetText").GetComponent <Text>();
            text.text = AlignmentGrid.SelectedAlignment.ToString();
            current   = currentParent.GetComponent <LayoutElement>().minHeight;
            currentParent.GetComponent <LayoutElement>().minHeight = current * multiplier * onePerCent;
            mTotalHeight += (int)currentParent.GetComponent <LayoutElement>().minHeight;
            UpdateNow     = true;
            currentParent.gameObject.SetActive(true);
            yield return(new WaitForSeconds(cWaitTime));

            // buffer:
            currentParent = transform.FindChild("Menu").FindChild("DragArea").FindChild("ScrollArea").FindChild("Buffer");
            currentParent.GetComponent <LayoutElement>().minHeight = (int)(Screen.height * 0.12f);
            mTotalHeight += (int)currentParent.GetComponent <LayoutElement>().minHeight;
            UpdateNow     = true;
        }