我正在制作一个简单的2d侧滚动游戏使用Unity3D。当我说2d时,我的意思是它会出现在2d,所有的背景资产都将是2d,但主要角色将是3d。我想要的是不平整的地板。不会有真正的地板,只会出现在背景上,所以从技术上讲,我想假装地板碰撞。
我查看了iTween,看起来它可以做我想做的事情。我的想法是使用iTween创建一条与背景上地板的线条相匹配的线。然后,我会将主要字符x位置与行x位置匹配,然后得到此时的y行位置来设置字符y位置。
我唯一的问题是我看不出这条线的坐标。在iTween中有一个名为PointOnPath()的方法,但是为了获得坐标,我需要知道我的字符沿着这条线的距离是多少。这是我不知道的事情,因为我的角色并没有真正跟随这条线。
如果有人对我如何使用或不使用iTween来完成这一任务有任何想法,我们将不胜感激。
提前谢谢你,
约翰
发布于 2012-08-07 06:01:32
你可以利用Unity3D的碰撞。 BoxColliders 可以用来模拟平坦的地面,也可能是您描述的不均匀的地面,方法是将不同尺寸的BoxColliders放在一起。
如果您想模拟曲面碰撞,请考虑使用MeshCollider并导入基本的三维网格(来自Blender、3 3DSMax、Maya等)。有一个低的多数点,符合您的形状水平。
演示这一点的一个非常快速的方法是拖动两个多维数据集(GameObject->Create >Cube),选择它,然后右击MeshFilter和MeshRenderer上的->Remove组件,留下BoxCollider,您可以移动/旋转/缩放。
唯一的问题,我可以轻易地看到这一原因是有台阶/楼梯或微小的高度差异。统一的例子人物处理这一点,让玩家的碰撞作为一个胶囊形状,推动胶囊时,它的大小,楼梯在一定的高度。替代方案可以是在代码中修复楼梯碰撞处理,或者在两步之间的间隙中添加一个角度/倾斜的对撞机。
https://stackoverflow.com/questions/11828314
复制相似问题