Попытка установить модификатор силы тяжести с помощью скрипта - PullRequest
0 голосов
/ 30 января 2019

Я хочу установить модификатор силы тяжести объекта на 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 голосов
/ 30 января 2019

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 во время любого удерживаемого кадра.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...