C# 这是代码问题还是统一输入问题

C# 这是代码问题还是统一输入问题,c#,unity3d,input,C#,Unity3d,Input,这里没有 我目前正在使用教程制作我的第一个小2d平台。 通过使用脚本,我的角色可以左右移动。我遇到的问题是 让精灵跳起来 下面是我的代码: 使用系统集合; 使用System.Collections.Generic; 使用系统诊断; 使用UnityEngine; 公共类玩家运动:单一行为 { 公共字符控制器2D控制器; 公共浮子运行速度=40f; 布尔跳跃=假; 浮动水平移动=0f; //每帧调用一次更新 无效更新() { 水平移动=输入。GetAxisRaw(“水平”)*运行速度; if(Inp

这里没有

我目前正在使用教程制作我的第一个小2d平台。 通过使用脚本,我的角色可以左右移动。我遇到的问题是 让精灵跳起来

下面是我的代码:

使用系统集合;
使用System.Collections.Generic;
使用系统诊断;
使用UnityEngine;
公共类玩家运动:单一行为
{
公共字符控制器2D控制器;
公共浮子运行速度=40f;
布尔跳跃=假;
浮动水平移动=0f;
//每帧调用一次更新
无效更新()
{
水平移动=输入。GetAxisRaw(“水平”)*运行速度;
if(Input.GetButtonDown(“跳转”))
{
UnityEngine.Debug.Log(“这很有效”);
跳跃=真;
}
}
私有void FixedUpdate()
{
Controller.Move(horizontalMove*Time.fixedDeltaTime,false,Jump);
跳跃=假;
}
}
调试行确实在我的控制台中执行,代码记录了我按下空格键的情况,但是,屏幕上的小人物什么也没发生

我希望有人能帮忙

非常感谢,


Ellis

Controller.Move()
中用于指定跳跃力的值似乎为0

如果将
horizontalMove
更改为公共浮点,则可以在unity编辑器中为其赋值,也可以在脚本中赋值

祝你好运

编辑: 对不起,不朽是对的。您已经设置了
水平移动


Input.GetAxisRaw
可以是-1,0或1。因此,
horizontalMove
可以变成-40、0或40。因为控制器参数与Time.deltaTime相乘,并且deltaTime通常在0.005左右,所以您的参数大约是(-)0.2。我不知道你的控制器对这个值做了什么,但我想这就是你看不到任何东西的原因。该值非常小

否,应在更新方法中设置水平移动,如op所述。从检查员那里分配是毫无意义的。