我在Unity做了一场2D游戏。我有一个附加了这个脚本的玩家精灵。左右键移动完美,但当我尝试获取空格键时,它不起作用
using System.Collections;
using System.Collections.Generic;
using System;
using UnityEngine;
public class Player : MonoBehaviour {
public float moveSpeed;
public float jumpHeight;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
Rigidbody2D playerBody = GetComponent<Rigidbody2D>();
if (Input.GetKeyDown("space")){
print("fired");
//playerBody.velocity = new Vector2(playerBody.velocity.x, jumpHeight);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
playerBody.velocity = new Vector2(-moveSpeed, playerBody.velocity.y);
}
if (Input.GetKey(KeyCode.RightArrow))
{
playerBody.velocity = new Vector2(moveSpeed, playerBody.velocity.y);
}
}
}
我也尝试了Keycode.Space
而不是“空间”,这两种方法都不起作用
也出于某种原因,我不能删除或替换unity3d标签,但这是一个2d统一游戏。
答案 0 :(得分:2)
您的代码似乎都很好,因此您的控制台窗口可能出错。确保在控制台的右上角突出显示注释框,这样当您在代码中打印某些内容时,它就会出现。另外,我建议您使用力来使角色跳跃而不是速度。在这种情况下,你说玩家的垂直速度为jumpHeight
,但永远不会改回来,所以你的角色会不断向上移动。您应该将该行更改为:
playerBody.AddForce (transform.up * jumpHeight);
您可能需要相应地调整jumpHeight
。