我的问题总结了我正在做的事情。
我搜索了互联网,每个人都不断给我通常的transform.Translate
答案,这对我不起作用,因为我需要物理和碰撞,而不仅仅是向前移动角色。
我知道怎么用rigidbody
来做这件事,但我的角色不断滚动,这是我不想要的。
答案 0 :(得分:1)
如果角色滚动,则可以冻结刚体上的一些旋转约束。
无论如何,这是来自角色控制器的脚本参考:https://docs.unity3d.com/Documentation/ScriptReference/CharacterController.Move.html
从中我猜你可以根据需要进行调整。
答案 1 :(得分:1)
使用CharacterController并使用其Move和SimpleMove函数。请参阅默认字符包以了解有关它的更多信息,并且您也可以使用该软件包中的字符电机脚本。
答案 2 :(得分:0)
首先添加Character Controller组件创建一个名为Move的新脚本,然后打开它并复制并粘贴此代码
#pragma strict
function Update () {
var Controller : CharacterController = GetComponent(CharacterController);
var forward : Vector3 = transform.TransformDirection(Vector3.forward);
Controller.SimpleMove(forward);
}
之后将脚本添加到您的播放器对象,然后您就完成了:)