尝试使用脚本设置重力修改器

时间:2019-01-29 22:25:44

标签: unity3d

我想在单击鼠标时将对象的重力修改器设置为2,然后在释放时降到.3。

我认为这只是一个简单的愚蠢错误。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Move : MonoBehaviour
{
public Rigidbody2D rb;
public float idle = .3f;

    void Start()
    {
    rb = GetComponent<Rigidbody2D>();
    }


void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        rb.gravityScale = 2f;
    }
    else
    {
        rb.gravityScale = .3f;
    }
}
}

1 个答案:

答案 0 :(得分:1)

GetMouseButtonDown仅在按下鼠标按钮的确切帧上返回true。这意味着,如果按住该键,else块将运行除被按下的帧以外的每一帧。您可以改用GetMouseButtonUp检查释放的鼠标,并在发生这种情况时将其改回:

if (Input.GetMouseButtonDown(0))
{
    rb.gravityScale = 2f;
}
if (Input.GetMouseButtonUp(0))
{
    rb.gravityScale = .3f;
}

或者您可以更具体地描述您的第一个if,然后使用空的else

if (Input.GetMouseButtonDown(0) || Input.GetMouseButton(0))
{
    rb.gravityScale = 2f;
}
else
{
    rb.gravityScale = .3f;
}

GetMouseButton将在其保持的任何帧中返回true