我用数组中的文本块制作了一个文本游戏。 问题是,即使我删除了文本并保持数组清晰,它仍然会显示在我的游戏中! 代码很简单,就是我的数组:
public StoryBlock[] storyBlocks = {
// a storyblock is build like that: String,String,String,Int,Int
// First string: Main text of the game
// 2-3 String: 2 option buttons.
// 2 intigers: each one assigned to coresponding option button:ID,when clicked, moves a player to other story block
/* block0 */new StoryBlock("GameText","ButtonWithOption1", "ButtonWithOption2", 1, 2),
/* block1 */new StoryBlock("GameText2","ButtonWithOption1", "ButtonWithOption2", 2, 2),
/* block2 */new StoryBlock("GameTex3","ButtonWithOption1", "ButtonWithOption2", 0, 1),
};
StoryBlock currentBlock;
以下是 StoryBlock 的构建方式
public class StoryBlock {
public string story;
[Header("Button 1")]
public string option1Text;
public int option1BlockId;
[Header("Button 2")]
public string option2Text;
public int option2BlockId;
public StoryBlock(string story, string option1Text = "", string option2Text = "",
int option1BlockId = -1, int option2BlockId = -1,) {
this.story = story;
this.option1Text = option1Text;
this.option2Text = option2Text;
this.option1BlockId = option1BlockId;
this.option2BlockId = option2BlockId;
}
我使用的所有 UI 元素:
public TMP_Text mainText;
public Button option1;
public Button option2;
此方法将按钮和游戏文本中的基本文本更改为 StoryBlock 数组中的文本:
public void DisplayBlock(StoryBlock block) {
mainText.text = block.story;
option1.GetComponentInChildren<TMP_Text>().text = block.option1Text;
option2.GetComponentInChildren<TMP_Text>().text = block.option2Text;
currentBlock = block;
}
当我单击按钮并根据我按下的按钮更改游戏故事时会发生这种情况:
public void DisplayOption1(){
DisplayBlock(storyBlocks[currentBlock.option1BlockId]); // BUTTON NR1 METHOD
}
public void DisplayOption2(){
DisplayBlock(storyBlocks[currentBlock.option2BlockId]); // BUTTON NR2 METHOD
}
当我的带有脚本的游戏对象激活时,我在这里写下我想要显示的块 (第0块是第一个)
void Start()
{
DisplayBlock(storyBlocks[0]);
}
发生的事情是......我现在有超过20个故事块,即使我删除了其中的3/4,保存脚本,按“播放”,删除的文本仍然会显示!我真的不知道它怎么可能仍然出现,当我删除它后它没有写在脚本的任何地方。 我什至录制了一个视频,显示即使数组的每个元素都以相同的方式编写,但取决于我要显示哪个,它要么不显示,要么部分显示,这根本没有意义。链接:https://www.youtube.com/watch?v=kASbBg7ccXE 预先感谢您的帮助。
我试着在另一个项目中这样做,将它分配给其他文本元素,但没有任何效果......