【发布时间】:2014-03-08 16:45:45
【问题描述】:
我的问题总结了我正在尝试做的事情。
我搜索了互联网,每个人都给我通常的transform.Translate 答案,这对我不起作用,因为我需要物理和碰撞,而不仅仅是移动角色。
我知道如何使用 rigidbody 执行此操作,但我的角色一直在滚动,这是我不想要的。
【问题讨论】:
标签: unity3d game-physics
我的问题总结了我正在尝试做的事情。
我搜索了互联网,每个人都给我通常的transform.Translate 答案,这对我不起作用,因为我需要物理和碰撞,而不仅仅是移动角色。
我知道如何使用 rigidbody 执行此操作,但我的角色一直在滚动,这是我不想要的。
【问题讨论】:
标签: unity3d game-physics
如果你的角色滚动,你可以冻结刚体上的一些旋转约束。
无论如何,这里有一些来自角色控制器的脚本参考:https://docs.unity3d.com/Documentation/ScriptReference/CharacterController.Move.html
据此,我想您可以根据需要进行调整。
【讨论】:
使用 CharacterController 并使用它的 Move 和 SimpleMove 函数。查看默认字符包以了解更多信息,您也可以使用该包中的字符电机脚本。
【讨论】:
首先添加角色控制器组件创建一个名为 Move 的新脚本,然后打开它并复制并粘贴此代码
#pragma strict
function Update () {
var Controller : CharacterController = GetComponent(CharacterController);
var forward : Vector3 = transform.TransformDirection(Vector3.forward);
Controller.SimpleMove(forward);
}
然后将脚本添加到您的播放器对象,然后您就完成了:)
【讨论】: