我想在单击鼠标时将对象的重力修改器设置为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;
}
}
}
答案 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
。