我对Visual Studio不太满意。
我正在制作一款简单的游戏,当gameobject
或Space
被按下时,我的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;向上运动"
答案 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)。