[英]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.