【发布时间】: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 这么说的,我认为这是正确的方法.
标签: c# unity3d camera game-physics