伙计们,我正在做猜字母游戏。 GameManager 从 JSON 中选择问题和答案,然后生成白色方块(代表答案中的一个字母)。答案有不同的字母计数,我想调整这个白色方块的比例和位置。我的分辨率只有 12 个白色方块适合屏幕,所以我想在答案有例如 2 个单词 = 15 个字母时做。一行中出现一个单词的白色方块,第二行出现第二个单词。
现在我的代码生成这样的白色方块: 你可以看到第二个单词被分成两行。
我想做这样的事情:(带有“V”的白色方块是答案方块/答案中的字母) 如果字数超过每行 12 个,那么一行中出现一个字,第二行中出现第二个字。
或者当答案很长时这样的东西: 答案太长,所以白色方块变小,每个单词分成三行。
我生成白色方块的代码:
public void InstantiateSecretAnswerRPC()
{
answer_value = replacedString;
for (int i = 0; i < replacedString.Length;)
{
char currentChar = replacedString[i];
if (currentChar.Equals(','))
{
Instantiate(secretaryCommaPrefab, secretaryParrent.transform);
i++;
}
else
{
var parrent = i > 12 ? secretaryParrentSecond : secretaryParrent;
var spawnedObj = Instantiate(secretaryPrefub, parrent.transform);
TMP_Text spawnedObjText = spawnedObj.GetComponentInChildren<TMP_Text>();
answerInstatiatedGameObjects.Add(spawnedObj);
spawnedObjText.text = currentChar.ToString();
spawnedObjText.enabled = false;
i++;
}
}
}
replacedString 是来自 JSON 但没有空格的答案 (
replacedString = jsonAnswer.Replaced(" ", ",")
)
secretaryParrent 和 secretaryParrentSecond 是具有两条线的水平层组的游戏对象。
所以我想做的是: 不要将一个单词分成两行,当答案字母数太大时缩小白色方块,当两个单词适合一行时,然后将其生成一行。
我怎样才能做到我想要的?我可以只在我的代码中实现一些代码部分,还是我必须从这个函数中全部返工。我希望我解释得足够多了。