ProjectX.001.暂名'工作室幻想' - 开发日志.004 - 悬停信息栏 & 对话气泡

又是一天工作日,又是一次brad的背手巡逻,又是突然说我们要给这个游戏加入些叙事内容,你说加就加喽,反正我也没啥发言权,然后我就加了。

我们预期为:4个开发组成员会基于玩家的交互说一些对应的Dialogue。触发条件可以是用卡或个体数值变化,要不就是游戏开发成功或失败等特殊条件。
这部分内容的开发其实简单的,说白了就是string类型变量的资源索引和传递,难点在于呈现形式的优化上。

优化目标:让气泡选框可以依据内容字体数量和排布自适应大小。
这部分工作说好做也好做。
气泡背景是个UI Image,添加Vertical Layout Group(勾选Control Child Size)和Content Size Fitter(Fit都切成Peferred Size)两个组件,具体对话内容的Text作为气泡背景的子物体,然后气泡就会以子物体文字的内容长度进行扩展。
问题出现:加了打字机形式的功能后,气泡弹出后会跟着文字内容的打出的长度,持续变换长宽高,就很呆。(参考下面gif绿字体弹出)
所以我在想要不直接就全文字弹出的形式来呈现,不要Type的功能了。(参考下面gif红字体弹出)

一番尝试之后,我发现是我对于TMP的认知浅薄了,TMP_Text是有maxVisibleCharacters这个变量的存在的,可以一开始就直接将所有的字符串输入,获得一个恒定且自适应的对话框大小,虽然让maVisibleCharacters为0再用打字机的协程让他的显示字符数量每隔0.2秒+1,这样就可以做出我期望的效果了。

然后我给这些对话添加了可拖拽和单击后缩小删除的功能。为了让玩家有充足的时间去阅读文字,所以将对话框删除的时间点交付给玩家来决定。Brad还提出个想法,就是对话框生成后会在屏幕中慢慢的随机飘动,但是我还没做,什么时候做看我心情吧:P

最后还加了Hover Tip的功能。玩家可以悬停屏幕中的任意元素,阅读卡牌信息或是场景内要素的信息。这也是为了我们教育游戏的中心概念服务的。希望玩家可以通过阅读悬停框内的文字达到学习做游戏的效果。真的有人会看吗……当然,由于Fried Egg那边的UI美术资源没给到,所以看着还非常的简陋。

呵呵,又是拉稀逝更新呢……明天还有更新,记得来看喔~
程序员干活(摸鱼)去了,拜~