Unity 4.0.0存在问题。当我玩AngryBots项目时,或者当我使用简单的步行脚本制作自己的字符时,它会自动走动而无需按任何按钮。
我尝试卸载Unity,我尝试使用较旧版本的Unity,我甚至将其从注册表中删除,但我仍然得到相同的行为。为什么会这样?这是一个错误,还是我做错了什么?
var speed = 6.0;
var jumpSpeed = 8.0;
var gravity = 20.0;
private var moveDirection = Vector3.zero;
private var grounded : boolean = false;
function FixedUpdate() {
if (grounded) {
// We are grounded, so recalculate movedirection directly from axes
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, 0);
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
if (Input.GetButton ("Jump")) {
moveDirection.y = jumpSpeed;
}
} // Apply gravity
moveDirection.y -= gravity * Time.deltaTime;
// Move the controller
var controller : CharacterController = GetComponent(CharacterController);
var flags = controller.Move(moveDirection * Time.deltaTime);
grounded = (flags & CollisionFlags.CollidedBelow) != 0;
}
@script RequireComponent(CharacterController)
我将这个脚本用于我所有的行走字符,它可以正常工作,但现在它会自动走动。
答案 0 :(得分:1)
你必须使用“动画”组件,而不是“Animator”组件。 (您可以通过单击“添加组件”,“其他”和“动画”来指定它。这将包含您需要的“自动播放”按钮。
答案 1 :(得分:1)
我有同样的事情发生在我身上。当我在编辑器和我的构建中将鼠标从游戏窗口移开时,我的角色会向上和向左移动。
转到“编辑,项目设置,输入”并验证是否相应地设置了水平和垂直。一旦我在InputManager中删除了Horizonal和Vertical的第二组输入,它就会停止这样做。
答案 2 :(得分:0)
问题在于提供运动轴输入。
通常它会是另一个设备,如操纵杆等。第一步是拔掉你可能要测试的任何其他输入设备(隔离问题 - 然后根据需要修复)
可能导致它的另一件事:我遇到了同样的问题,但没有其他输入设备插入。我发现一个名为VJoy虚拟操纵杆的驱动程序(作为FreetrackNoIR的一部分安装)将移动轴值设置为1和-1对于每个轴,因此导致相同的问题。
禁用此驱动程序(控制面板,设备管理器,人机接口设备)为我修复了它!
祝你好运。