[英]Adding velocity to 2d sprite in c# unity
您好,我想知道是否有人可以幫助我修復練習代碼(我在制作真實的東西之前先制作練習代碼,因為它就是我的滾動方式),它基本上是一個對象,需要用戶單擊屏幕才能使其不就像拍打飛鳥一樣觸地,但是盡管我已經正確地將重力施加到了精靈上,但是我無法固定速度部分(我編碼是每次用戶用鼠標單擊或敲擊空格鍵時對象都會像拍打飛鳥一樣向上移動)
using UnityEngine;
using System.Collections;
public class BirdMovment : MonoBehaviour {
Vector3 Velocity = Vector3.zero;
public Vector3 gravity;
public Vector3 flapVelocity;
public float maxSpeed = 5f;
bool didFlap = false;
// Use this for initialization
void Start () {
}
void update (){
if (Input.GetKeyDown (KeyCode.Mouse0))
{
didFlap = true;
}
}
// Update is called once per frame
void FixedUpdate () {
Velocity += gravity* Time.deltaTime;
if (didFlap) {
didFlap = false;
Velocity += flapVelocity;
}
Velocity = Vector3.ClampMagnitude (Velocity, maxSpeed);
transform.position += Velocity * Time.deltaTime;
}
}
您能否解決錯誤,因為每次我為Sprite廣告運行程序統一設置速度時,Sprite都會不斷下降,無論我單擊或輕擊空格鍵多少,Sprite都不會停止下降,即使我增加速度
首先,正確的Update函數使用大寫字母U,因此使用Update()
而不是update()
。 然后,由於您沒有對物理學做任何事情,因此可以在Update
進行所有操作,而完全不使用FixedUpdate
。 因此,您可以刪除didFlap
變量並直接在if (Input.GetKeyDown ...)
塊內添加到Velocity
。 此外,關於重力,您要將其與Time.deltaTime
乘以兩次,因此刪除第一個。 那應該讓您開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.