Visual Studio 如何在Unity的序列化文本字段中使用字符串变量?

wrrgggsh  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(90)

我有一个C#脚本附加到预制件。它有一个字符串的对话框列表,我更喜欢通过Unity的可序列化字段函数来编写。该脚本有一个存储的字符串变量'charactername',其中包含播放器的名称。问题是,有时,我被要求获取角色名称以放置在对话字符串中。想象一下,如果有一个角色在看你的身份证,然后说“哦,你的名字是XYZ”。我不能在脚本中硬编码对话,因为它是一个预制件,所有的NPC都使用相同的预制件与不同的对话列表。有人告诉我在TextMeshPro元素上有一个脚本,它删除了我自己的小代码,如/p,并将其替换为播放器名称。但我觉得这是一种肮脏的做事方式。还有更好的办法吗?
澄清一下,我的问题是,我需要一种在Unity编辑器的检查器中通过字符串的Serialized Field中的变量名来使用字符串的方法。因此,虽然我的代码包含一个名为“characterName”的变量,但我想使用它的值的地方是Unity编辑器的检查器面板中附加脚本本身下的一个矩形文本框。

e0bqpujr

e0bqpujr1#

如果我正确理解了你的问题,那么你可以像下面这样使用string interpolation

string characterName = "XYZ";
string dialogue = $"Oh, so your name is {characterName}.";

字符串
你也可以使用string.Format方法,或者你可以在原始字符串中使用保持器,然后使用字符串Replace方法将其替换为characterName

相关问题