卡片中从右到左的字母Unity [英] Right to left letters in cards Unity
本文介绍了卡片中从右到左的字母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屋!
查看全文