我正在构建一个游戏,玩家在其中一些字母之间绘制一条路径以构成一个单词。字母从左到右出现在卡片上的问题。与Vector3
有关吗?我找不到解决方案。我将值设为(-1,1,1)。字母从右到左排序,但翻转。请问您有什么建议。
您可能会在下图中找到该概念
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;
// }
}
答案 0 :(得分:0)
没有看到任何代码,您可能想要翻转循环:
for(int i = 0; i < cards.Count; i++)
到
for(int i = (cards.Count - 1); i >= 0; i--)
但是请分享一些代码,以便我们提供帮助。
编辑:更正循环。