通过按住鼠标左键/空格移动播放器Microsoft VIsual Studio(Unity)

时间:2016-05-09 18:32:42

标签: c# unity3d unityscript

我对Visual Studio不太满意。

我正在制作一款简单的游戏,当gameobjectSpace被按下时,我的Left Mouse Button(玩家)应该向上移动。

这是我的代码

using UnityEngine;
using System.Collections;

public class PixelMovement : MonoBehaviour {

    Vector3 velocity = Vector3.zero;
    public Vector3 PressVelocity;
    public float maxSpeed = 5f;
    public float fowardSpeed = 1f;

    bool didPress = false;

    // Use this for initialization
    void Start () {

    }

    //Do Graphic & Input updates
    void update() {
        if(Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) {
            didPress = true;
        }
    }

    //Do physics engine updates here
    void FixedUpdate () {
        velocity.x = fowardSpeed;
        if (didPress == true){
            didPress = false;
            velocity += PressVelocity;
        }

        velocity = Vector3.ClampMagnitude(velocity, maxSpeed);
        transform.position += velocity * Time.deltaTime;
    }
}

所以,它应该像重力一样移动。当它停止持续时,它会继续下降。我已经拥有了引力,我只需要#34;向上运动"

2 个答案:

答案 0 :(得分:0)

//Do Graphic & Input updates
void update() {
    if(Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) {
        didPress = true;
    }
}

我认为问题是因为update()应该是Update()

尝试:

//Do Graphic & Input updates
void Update() {
    if(Input.GetKeyDown(KeyCode.Space) || Input.GetMouseButtonDown(0)) {
        didPress = true;
    }
}

答案 1 :(得分:0)

这是一个快速修复:你正在调用Input.GetKeyDown()和Input.GetMouseButtonDown(),它只在按下按钮的第一帧上返回true。

如果您想要重复事件(I.E.,鼠标按钮或空格按住),请使用Input.GetKey(KeyCode.Space)和Input.GetMouseButton(0)。