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# (Unity)尝试通过按住鼠标并按下鼠标来触发多个对象_C#_Unity3d_Input - Fatal编程技术网

C# (Unity)尝试通过按住鼠标并按下鼠标来触发多个对象

C# (Unity)尝试通过按住鼠标并按下鼠标来触发多个对象,c#,unity3d,input,C#,Unity3d,Input,我需要一些帮助。我的场景由4个球体组成,我试图实现的是,当你点击一个球体时,球体的颜色会发生变化,当你将鼠标(按住鼠标)拖动到其他球体上时,其他球体的颜色也会发生变化。到目前为止,我所能做的就是在单击球体时更改球体的颜色,但当我将鼠标拖动到其他球体上时,我无法更改它们的颜色。我认为这显然是因为代码只在第一次单击鼠标时运行。有没有办法改变这一点,这样当鼠标被点击并拖动到球体上时,球体就会改变颜色?我试过玩OnMouseDrag,但没有成功。这里有一个链接到一个视频,其中介绍了我到目前为止所取得的成

我需要一些帮助。我的场景由4个球体组成,我试图实现的是,当你点击一个球体时,球体的颜色会发生变化,当你将鼠标(按住鼠标)拖动到其他球体上时,其他球体的颜色也会发生变化。到目前为止,我所能做的就是在单击球体时更改球体的颜色,但当我将鼠标拖动到其他球体上时,我无法更改它们的颜色。我认为这显然是因为代码只在第一次单击鼠标时运行。有没有办法改变这一点,这样当鼠标被点击并拖动到球体上时,球体就会改变颜色?我试过玩OnMouseDrag,但没有成功。这里有一个链接到一个视频,其中介绍了我到目前为止所取得的成就以及我正在努力追求的目标: (所有球体都附加了相同的脚本)下面是我的代码: `

公共游戏对象领域;
公共材料;
void OnMouseDown()
{
sphere.GetComponent().material=material;
}

`通过使用静态布尔值,我成功地实现了我想要的。单击鼠标按钮时,布尔值设置为true,如果布尔值为true,则OnMouseCenter函数会更改对象的材质。当鼠标松开时,布尔值设置为false

对。如果你想在更高的层次上做一些事情,例如影响多个对象,你需要通过使用一个适用于所有对象的脚本来做不同的事情,因此a)在特定项目上检查鼠标,然后知道鼠标是否仍然向下移动并移向其他项目以重复..通过使用静态布尔值得到了我想要的。我真蠢,以前没想到这一点,谢谢你的意见!
     public GameObject sphere;
     public Material material;

     void OnMouseDown()
     {
         sphere.GetComponent<MeshRenderer>().material = material;
     }