这个文章实时更新,主要记录我自己的Unity开发问题,方便回顾和二次利用。

使用组合碰撞器,人物落地刚体组件出现负方向的速度(rb.velocity.x < 0)

使用box-collided,人物移动跳跃均正常,但使用组合碰撞器落地出现负速度,导致自动转向左。
解决方法为:在unity中修改组合碰撞器组件中的offset distance的值为0

如何快速创建一个演示平台

使用地形terrain,unity的默认地形自带为棋盘样式。
或者可以使用plane+材质的形式。具体为使用Shader Graph插件,创建一个Ulint Shader Graph,绘制一个黑白相间的棋盘样式材质。创建一个scale节点,表示格子数量,一个colorA和colorB表示相间的格子颜色。在绘制页面创建一个UV,具体如下
棋盘材质绘制.png

如何避免文本的硬编码

使用unity官方的 Localization Package组件
最近在绘制UI,会在文本框填入文本,但写死了要修改是很麻烦的,且不利于语言切换,这是不合理的。使用stringTable,每次调用读取设定的key即可,后续维护这个table。

开发对话系统可以用相关的对话插件,如Dialogue System for Unity

unity联机多客户端测试问题

unity不支持同时运行多个实例用来测试联机游戏,所以只能自己想办法。
查了一下,最方便还是开两个编辑器调试,但是要用一个bat脚本(windows)软连接一下,不然hub不给开两个。

set dir="your-unity-proj"
set copy_dir=~ClientCopy
if not exist %copy_dir% mkdir %copy_dir%
mklink /J D:\project_game\unity\%copy_dir%\Assets D:\project_game\unity\%dir%\Assets
mklink /J D:\project_game\unity\%copy_dir%\Packages D:\project_game\unity\%dir%\Packages
mklink /J D:\project_game\unity\%copy_dir%\ProjectSettings D:\project_game\unity\%dir%\ProjectSettings
pause

这样就可以打开两个编辑器了,不然每次都要打包,然后测试,改了再打包,纯浪费时间。