level 9
多啦A户
楼主
其实上一次,主界面的文本就基本汉化完整了,但是 高分榜/积分榜 和 制作人员名单的显示之间给我带来巨大的问题,并且直接牵涉到游戏底层的一些东西——文字段落块的处理,颜色,换行和对齐。
首先是Peter写这个游戏时用的Unity版本显然是很老的版本,他的很多代码似乎都是用当时Unity支持的js写的,但是我不太熟悉这部分东西。
这导致了一个问题,反编译来的代码本来就不好懂了,再加上旧的语言语法,这个 FormatText方法直接类似于天书了:



从对一些字符串的处理可以看出来大概在干什么,但是具体到一些语句,旧完全是云里雾里了:

以及魔鬼般的旧语法语句:

在这种情况下,头三天的我简直是头脑发昏,钻了牛角尖了。我硬是识图看懂这个FormatText,并且直接用Prefix来重写它的逻辑。
但是事实证明我错了。最严重的问题就是严重的错位(Textbox的预制体的原始坐标在 【】,我完全没有看懂原方法到底是怎么调整到正确的位置的)。其次还有颜色丢失等小问题(这个我目前已经知道哪里有问题了)。
在数天尝试无果之后,我突然意识到,原本的FormatText方法其实只面临三个问题:
1.不支持中文显示,这个换个字体就解决了;
2.存在定位问题;
3.中文的换行问题;
其中的1、2都可以比较轻松地找到解决办法。
于是我妥协了。直接选择重写更为简单的 CreateNewTO方法。原本绞尽脑汁找问题,如今换一个方向就迎刃而解了。
虽然还有中文换行的问题亟待解决,但能正常显示和定位,已经是重大进展。
【感想】
由此我发现,很多时候,走错路了,其实会有一种“预兆”,就是你会陷入非常长时间没有进展的状态。
这个时候你需要评估一下你的目标,如果“攻克它”对于你实现目标来说,不是必要的,就未必需要继续走这条路。
就像我这一次经历的,重写FormatText遇到重重困难,直接修改它的返回值,修改它中间调用的其他函数,问题反而迎刃而解了。
目前的显示效果:





另外就是 Play! 和 DreamQuest 到底怎么翻译才是信达雅的,欢迎各位提出建议!
2024年11月21日 03点11分
1
首先是Peter写这个游戏时用的Unity版本显然是很老的版本,他的很多代码似乎都是用当时Unity支持的js写的,但是我不太熟悉这部分东西。
这导致了一个问题,反编译来的代码本来就不好懂了,再加上旧的语言语法,这个 FormatText方法直接类似于天书了:



从对一些字符串的处理可以看出来大概在干什么,但是具体到一些语句,旧完全是云里雾里了:
以及魔鬼般的旧语法语句:
在这种情况下,头三天的我简直是头脑发昏,钻了牛角尖了。我硬是识图看懂这个FormatText,并且直接用Prefix来重写它的逻辑。但是事实证明我错了。最严重的问题就是严重的错位(Textbox的预制体的原始坐标在 【】,我完全没有看懂原方法到底是怎么调整到正确的位置的)。其次还有颜色丢失等小问题(这个我目前已经知道哪里有问题了)。
在数天尝试无果之后,我突然意识到,原本的FormatText方法其实只面临三个问题:
1.不支持中文显示,这个换个字体就解决了;
2.存在定位问题;
3.中文的换行问题;
其中的1、2都可以比较轻松地找到解决办法。
于是我妥协了。直接选择重写更为简单的 CreateNewTO方法。原本绞尽脑汁找问题,如今换一个方向就迎刃而解了。
虽然还有中文换行的问题亟待解决,但能正常显示和定位,已经是重大进展。
【感想】
由此我发现,很多时候,走错路了,其实会有一种“预兆”,就是你会陷入非常长时间没有进展的状态。
这个时候你需要评估一下你的目标,如果“攻克它”对于你实现目标来说,不是必要的,就未必需要继续走这条路。
就像我这一次经历的,重写FormatText遇到重重困难,直接修改它的返回值,修改它中间调用的其他函数,问题反而迎刃而解了。
目前的显示效果:





另外就是 Play! 和 DreamQuest 到底怎么翻译才是信达雅的,欢迎各位提出建议!












