簡體   English   中英

Unity 2D:當我按下某個鍵時,是否更改播放器的重力比例?

[英]Unity 2D:Change the gravity scale of my player when I press a certain key?

我對unity和C#還是很陌生,我試圖了解如何在按下空格鍵時更改角色的重力比例。 當我調試它時,它說Rigidbody2D.gravityScale不能用作方法。 有人可以解釋為什么會帶來此錯誤以及如何解決該錯誤嗎?

public class PlayerMovement : MonoBehaviour {

    public float moveSpeed;
    private Rigidbody2D rb2d;
    public float addGrav;

    // Use this for initialization
    void Start () {
        rb2d = GetComponent<Rigidbody2D> ();
    }

    // Update is called once per frame
    void Update () {

        //Understanding::: If key pressed down, 
        //Transform - method that manipulates position of object
        //Translate moves transform in direction/distance of translation.
        //transform.Translate(translation);
        if (Input.GetKey (KeyCode.UpArrow)) 
        {
            transform.Translate (Vector2.up * moveSpeed * Time.deltaTime);
        }

        if (Input.GetKey (KeyCode.DownArrow)) 
        {
            transform.Translate (Vector2.down * moveSpeed * Time.deltaTime);
        }

        if (Input.GetKey (KeyCode.LeftArrow)) 
        {
            transform.Translate (Vector2.left * moveSpeed * Time.deltaTime);
        }

        if (Input.GetKey (KeyCode.RightArrow)) 
        {
            transform.Translate (Vector2.right * moveSpeed * Time.deltaTime);
        }

        if(Input.GetKey (KeyCode.Space))
        {
            rb2d.gravityScale (addGrav);
        }
    }
}

rb2d.gravityScale不是方法,它是您可以為其分配值的字段。

用這個

rb2d.gravityScale = addGrav; //to asign
//other example
rb2d.gravityScale += addGrav; //to add
rb2d.gravityScale -= addGrav; //to substract

因為您使用括號而不是等號,所以編譯器將其作為方法讀取。 應該是這樣。

rb2d.gravityScale = addGrav;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM