【问题标题】:Unity3D: Left Joystick Translation Depending on Facing DirectionUnity3D:左操纵杆平移取决于面向方向
【发布时间】:2018-08-17 16:52:11
【问题描述】:

我在这个非常简单的问题上碰壁了...我知道必须有一个简单的解决方案,但我不确定它是什么。我正在为游戏果酱制作原型——我的游戏是一个自上而下的 3D 双棒风格游戏。右摇杆旋转玩家,左摇杆控制移动。运动是通过 Mecanim 中的动画完成的——我有前进/后退/扫射设置和混合。

我的问题是现在它像生化危机一样移动——无论角色面向哪个方向,操纵杆上的“向上”都会推动角色前进。我需要将操纵杆上的“向上”翻译为相对于世界 - 而不是玩家(即:如果面向右侧,“向上”应该让她向左扫射)。我想找到什么?我很确定有一些我需要调用的内置翻译...

我正在使用 Unity 并向 Mecanim 发送介于 -1 和 1 之间的水平和垂直值。我需要根据字符旋转来转换这些值,以便“向上”根据字符的原始旋转将字符移向屏幕顶部。

【问题讨论】:

  • 这个链接恰好解释了你想要的相反的东西,但它可能有助于理解这种行为是如何产生的:3dbuzz.com/forum/threads/…

标签: c# unity3d rotation translation joystick


【解决方案1】:

好吧,听起来麻烦在于您使用模型前向向量进行翻译。大多数时候这是人们想要的,但在您的情况下,您只想根据世界空间移动角色。我的建议是取回字符在世界中的位置,并将值添加到位置向量中。 我不完全确定它是如何统一完成的,但如果我想在世界空间中获得一个模型空间位置以便对其进行处理,我会将该向量乘以世界矩阵,它将将该点从模型空间带到世界空间。

【讨论】:

  • 谢谢!我会试一试。如果可行,我会发布伪代码以帮助其他有类似问题的人!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多