Unity3D:左操纵杆平移取决于方向

时间:2018-08-17 16:52:12

标签: c# unity3d rotation translation joystick

我在解决这个非常简单的问题上遇到了困难……我知道必须有一个简单的解决方案,但是我不确定这是什么。我正在制作游戏果酱的原型-我的游戏是自上而下的3D双棍风格的游戏。右摇杆旋转播放器,左摇杆控制移动。移动是通过Mecanim中的动画完成的-我具有前进/后退/跨步设置并进行了混合。

我的问题是现在它的动作就像生化危机一样-无论操纵杆朝向哪个方向,操纵杆上的“向上”都会使角色向前移动。我需要在操纵杆上平移“上”以使其相对于世界-而不是玩家(即:如果朝右,“上”应使她的脚步向左移动)。我想找到什么?我很确定有一些内置翻译需要调用...

我正在使用Unity,并将-1和1之间的Horizo​​ntal和Vertical值发送给Mecanim。我需要根据字符旋转来转换这些值,以便“向上”根据字符的原始旋转将字符移到屏幕顶部。

Image 1

Image 2

Image 3

1 个答案:

答案 0 :(得分:0)

好吧,听起来这很麻烦,是因为您正在使用模型的前向矢量进行转换。在大多数情况下,这就是人们想要的,但是在您的情况下,您只想根据世界空间移动角色。我的建议是找回角色在世界上的位置,然后将值添加到位置向量中。 我不能完全确定它是如何统一完成的,但是如果我想在世界空间中获得模型空间的位置以便对其进行处理,我可以将该向量乘以worldmatrix,从而将这一点从模型空间引入世界空间。 >