卡片中从右到左的字母Unity [英] Right to left letters in cards Unity

查看:153
本文介绍了卡片中从右到左的字母Unity的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在构建一个游戏,玩家在其中一些字母之间绘制一条路径以构成一个单词.字母从左到右出现在卡片上的问题.与Vector3有关吗?我找不到解决方案.我将值设为(-1,1,1).字母从右到左排序,但翻转.请问您有什么建议.

I'm building a game where the player draws a path between some letters to make a word. the problem there that the letters appear in the cards from left to right. is that related to Vector3? I can't find a solution. I put values to (-1,1,1). the letters sorted from right to left but flipped. what are your suggestions please.

您可能会在下图中找到该概念

You may find the concept in the image below

public void CreateTargetWords()
{
    // Da li da kreiramo bonus slovca
    int numberOfBonusLetters = 0;
    int bonusLettersCreated = 0;

    if (Random.Range(0, 2) == 0)
    {
        // Da vidimo koliko cemo slovca da napravimo da budu bonus
        numberOfBonusLetters = Random.Range(1, LevelsParser.selectedPack + 1);
    }

    List<GameObject> allLetters = new List<GameObject>();

    if (!isBonus)
    {
        // Ako je broj trazenih reci veci od 3 onda delimo na dva holdera u suprotnom stavljamo u jedan
        if (targetWords.Count <= 3)
        {
            // Za svaku rec iz niza targetovanih reci kreiramo po jedan wordHolder objekat
            for (int i = targetWords.Count - 1; i >= 0; i--)
            {
                GameObject newWord = Instantiate(wordHolder, targetWordsHolder.transform) as GameObject;
                newWord.transform.localPosition = Vector3.zero;

                newWord.GetComponent<TargetWord>().word = targetWords[i];

                // Zatim za svako slovo iz reci kreiramo letterHolder objekat i popunjavamo ga
                char[] letters = targetWords[i].ToCharArray();

                for (int j = 0; j < letters.Length; j++)
                {
                    GameObject newLetter = Instantiate(letterHolder, newWord.transform) as GameObject;

                    newLetter.transform.Find("AnimationHolder/LetterImage").GetComponent<Image>().sprite = GetLetterSprite(letters[j].ToString());

                    newLetter.transform.Find("AnimationHolder/LetterImage").GetComponent<Image>().enabled = false;

                    allLetters.Add(newLetter);
                }

                newWord.transform.localScale = Vector3.one;
            }
        }
        else
        {
            // Ukljucujemo odgovarajuce holdere
            targetWordsHolder.SetActive(false);
            targetWordsHolder1.SetActive(true);
            targetWordsHolder2.SetActive(true);
            targetWordsHolder1.

            // Najmanja sirina targetovanog slova
            //          float minLetterSize = 10000; // Postavljamo na brojku koja je sigurno mnogo veca od ostalih

            // Kreiramo prvu polovinu reci
            for (int i = targetWords.Count - 1; i > targetWords.Count / 2 - 1; i--)
            {
                GameObject newWord = Instantiate(wordHolder, targetWordsHolder1.transform) as GameObject;
                newWord.transform.localPosition = Vector3.zero;

                newWord.GetComponent<TargetWord>().word = targetWords[i];

                // Zatim za svako slovo iz reci kreiramo letterHolder objekat i popunjavamo ga
                char[] letters = targetWords[i].ToCharArray();

                for (int j = 0; j < letters.Length; j++)
                {
                    GameObject newLetter = Instantiate(letterHolder, newWord.transform) as GameObject;

                    newLetter.transform.Find("AnimationHolder/LetterImage").GetComponent<Image>().sprite = GetLetterSprite(letters[j].ToString());

                    newLetter.transform.Find("AnimationHolder/LetterImage").GetComponent<Image>().enabled = false;

                    allLetters.Add(newLetter);
                }

                newWord.transform.localScale = Vector3.one;

                //              // Proveravamo i setujemo velicinu najmanjeg slova
                //              if (newWord.transform.GetChild(0).GetComponent<RectTransform>().sizeDelta.x < minLetterSize)
                //              {
                //                  minLetterSize = newWord.transform.GetChild(0).GetComponent<RectTransform>().rect.width;
                //              }
            }

推荐答案

没有看到任何代码,您可能想要翻转循环:

Without seeing any code, you probably want to flip your loop:

for(int i = 0; i < cards.Count; i++)

for(int i = (cards.Count - 1); i >= 0; i--)

但是请分享一些代码,以便我们提供帮助.

But please share some code, so we can help.

更正循环.

这篇关于卡片中从右到左的字母Unity的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆