我是个新手。
我目前正在使用一个教程来制作我的第一个小型2D平台游戏.通过使用脚本,我的角色可以左右移动。我遇到的问题是让精灵跳跃。
下面是我的代码。
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using UnityEngine;
public class PlayerMovement : MonoBehaviour
{
public CharacterController2D Controller;
public float RunSpeed = 40f;
bool Jump = false;
float horizontalMove = 0f;
// Update is called once per frame
void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal") * RunSpeed;
if (Input.GetButtonDown("Jump"))
{
UnityEngine.Debug.Log("This works");
Jump = true;
}
}
private void FixedUpdate()
{
Controller.Move(horizontalMove * Time.fixedDeltaTime, false, Jump);
Jump = false;
}
}
调试行在控制台上执行 我的代码记录了我按下的空格键 然而,屏幕上的小人却没有任何反应
希望有人能帮忙。
非常感谢。
埃利斯
你使用的值在 Controller.Move()
来指定跳跃的力,似乎是0。
如果你把 horizontalMove
到一个公共浮点,你可以在unity编辑器中给它赋值,也可以在脚本中赋值。
祝您好运。
EDIT:对不起,不朽是对的。你已经设置了 horizontalMove
.
Input.GetAxisRaw
可以是-1,0或1。所以 horizontalMove
可以变成-40、0或40。因为你在你的控制器参数中乘以Time.deltaTime--而deltaTime通常在0.005左右--你的参数大约会变成(-)0.2。我不知道你的控制器对这个值做了什么,但我想这就是为什么你看不到任何东西的原因。这个值太小了