无论我做什么,Unity 都不会相对于玩家而不是世界移动

问题描述 投票:0回答:1

我决定有一天要制作一款 3D 游戏,我让摄像机环顾四周以及一切,但是当我尝试制作 WASD 移动时,它不起作用。我尝试了我能找到的所有教程、AI 和代码,但没有任何效果...基本上问题是我试图用 WASD 移动我的玩家,但无论我做什么,它总是会相对于世界移动而不是玩家(简单来说:我尝试了一切,但玩家总是在整个场景的 X 或 Z 轴而不是玩家对象的 X 或 Z 轴上移动)

这是我的层次结构: 定向光 地面 玩家(我试图移动的游戏对象(顺便说一句,它是一个胶囊)) 相机(玩家的相机,它是父玩家对象的子级)

我真的想不通,我到处都找过,但我完全不知道。任何事情都会有帮助的。谢谢! (顺便说一句,我可以提供所需的任何信息)

这已经在描述中解释过,但堆栈溢出要求我填写此内容,所以...

c# unity-game-engine position game-development
1个回答
0
投票

首先,检查您的相机外观脚本是否也在旋转玩家身体。如果这有效,但玩家仍然沿着世界轴移动,请使用

transform.TransformDirection()
,其中
transform
是玩家的身体,无论代码对玩家进行物理移动/施加力。这段代码要做的就是操作一个向量3,将其从世界轴转换为局部轴。

希望这有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.