Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在单击统一中缩放多个按钮_C#_Unity3d - Fatal编程技术网

C# 如何在单击统一中缩放多个按钮

C# 如何在单击统一中缩放多个按钮,c#,unity3d,C#,Unity3d,现在,我正在使用 public GameObject Button; void Update() { if (Input.GetMouseButtonDown(0)) { Button.transform.localScale = new Vector3(0.92f, 0.92f, 0.92f); } else if(Input.GetMouseButtonUp(0)) { Button.transform.localSca

现在,我正在使用

public GameObject Button;
void Update()
{
    if (Input.GetMouseButtonDown(0))
    {
        Button.transform.localScale = new Vector3(0.92f, 0.92f, 0.92f);
    }
    else if(Input.GetMouseButtonUp(0))
    {
        Button.transform.localScale = new Vector3(1f, 1f, 1f);
    }
}
我对屏幕上的更多按钮使用了相同的代码,但当我单击其中一个按钮时,所有按钮都会收缩。如何使它们单独收缩?

如果按下鼠标,则会全局侦听。。无论在哪个按钮上,甚至在任何按钮上


您可以使用接口之类的

  • 您需要在场景中添加一个
  • 如果您的对象不是UI元素而是3D对象,那么您还需要
    • 物体上的碰撞器
    • 摄像机上的组件

或者,您也可以使用和,它们也仅在单击的特定对象上调用

public class Example : MonoBehaviour
{
    public GameObject Button;

    public void OnMouseDown()
    {
        Button.transform.localScale = Vector3.one * 0.92f;
    }

    public void OnMouseUp()
    {
        Button.transform.localScale = Vector3.one;
    }
}


注意:两者都需要将脚本附加到与
碰撞器
或GUIElement

相同的对象上,然后使用按钮事件侦听器定义onPointerDown和up事件,然后可以在它们内部编写相同的逻辑
public class Example : MonoBehaviour
{
    public GameObject Button;

    public void OnMouseDown()
    {
        Button.transform.localScale = Vector3.one * 0.92f;
    }

    public void OnMouseUp()
    {
        Button.transform.localScale = Vector3.one;
    }
}