我有一个2D游戏,用户可以通过点击屏幕添加顶点来创建汽车,然后在他们认为合适时拖动它们 . 然后使用这些顶点绘制网格 . 用户还可以向顶点添加轮子(每个顶点1个) .
在游戏中还有一个让计算机生成随机汽车的选项,它可以通过在unit circle内的随机点创建八个顶点来实现 .
存储这些汽车并且用户可以加载它们并重新使用它们 . 下面的两张图片显示了一个方形按钮,其中包含一台计算机生成的汽车(绿色的红色车轮),它按照预期位于广场内部,还有一个用户生成的汽车(白色粉红色车轮)位于广场外 .
我知道这是因为计算机生成的网格从Vector3.zero中绘制了三角形,这是对象的中心,而用户在顶点之间只创建了一个三角形,它们不一定围绕对象的中心放置(如在这个例子中,它们都放在中心的上方和右侧) .
How would I go about centering the mesh of the user created car?
我也许可以计算网格的中心,然后从所有顶点的位置中减去它 . 或者我可以在游戏对象的位置中减去该位置,该游戏对象在gui中呈现网格时保持网格 . 或者有更好的替代解决方案?
1 回答
使用Mesh.Bounds
这也可以让你访问一堆很酷的字段,如
center
min
max
和size