Unity 3D - 使用刚体的第三人称角色移动
Posted
技术标签:
【中文标题】Unity 3D - 使用刚体的第三人称角色移动【英文标题】:Unity 3D - Third Person character movement using rigidbody 【发布时间】:2016-08-31 17:46:39 【问题描述】:我是 Unity 的新手,正在尝试制作我的第一款游戏(第三人称射击游戏)。 一个多星期以来,我一次又一次地尝试使用刚体组件而不是角色控制器或简单的 transform.Translate 来让我的角色移动。
自从一周浏览有关它的主题以来,我打开了大约 30 个网页,但我没有找到任何东西(几乎让我觉得我正在尝试做一些不可能的事情,哈哈……)。
所以,我想像在细胞分裂黑名单中一样移动我的角色,并让带有十字准线的相机由鼠标控制(如果我射击,角色会在不面向目标的情况下旋转然后射击)。
对于运动,如果用刚体做不到,那我就用其他的一个,只是我喜欢刚体的真实感觉。
如果甚至有一个教程可以将其分解以真正理解,那就太好了,或者只是一些带有 cmets 的代码(我有 C# 背景)。
float moveSpeed = 6f; // Player's speed when walking.
float rotationSpeed = 6f;
float jumpHeight = 10f; // How high Player jumps
Vector3 moveDirection;
Rigidbody rb;
// Using the Awake function to set the references
void Awake()
rb = GetComponent<Rigidbody>();
void FixedUpdate()
Move();
void Move ()
float hAxis = Input.GetAxis("Horizontal");
float vAxis = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(hAxis, 0f, vAxis);
rb.position += movement * moveSpeed * Time.deltaTime;
【问题讨论】:
我主要做 2d Unity 工作,所以我不知道我可以为您的情况提供多少帮助,但 here 是一个非常有趣的视频,我发现它可以帮助您少量。不要让自己失望,一开始总是很难。我发现我工作的时间越长,它不仅变得更容易,而且变得更有趣! “试图让我的角色使用刚体组件而不是角色控制器移动”。 为什么? 次要,注意你很少在 Unity 中使用“FixedUpdate”。忘记它。 @JessyDoyle 感谢您的回复,是的,我看过很多他的视频,他真的很棒!实际上是因为那个特定的视频,我想用刚体去啊啊啊..我会再挖一点 @JoeBlow 为什么,因为它对我想要的最终结果有不同的感觉,就像 Jessy Doyle 链接的视频一样,它解释了我刚才所说的。根据我在 Unity 网站上阅读的内容,当您想在 Unity 中使用物理时,您宁愿在 FixedUpdate 中执行此操作,因为据我目前所知,是 Unity 这么说的,我认为这是正确的方法. 【参考方案1】:我的想法。
如果您想要真实的感觉,您需要在角色身体的适当部分为您的角色添加rigidbody.addforce
。不是rigidbody.position
。
希望帮助。
【讨论】:
谢谢,按下横轴时如何旋转字符? 如果你想要真正的感觉,那么你就给予真正的力量。然后在一侧施力。 这会让角色旋转吗? 尝试使用this 不只给你的角色一个rb,例如左腿、右腿、身体...以上是关于Unity 3D - 使用刚体的第三人称角色移动的主要内容,如果未能解决你的问题,请参考以下文章