单击对象时的Unity3d操作

单击对象时的Unity3d操作,unity3d,3d,mouseover,Unity3d,3d,Mouseover,我在unity中制作了一个开门脚本,这就是代码: void Update () { if (i < 5) { if (Input.GetMouseButtonDown(0)) { transform.Rotate(Vector3.up * Time.deltaTime * 1080); i++; } } else if (i >= 5) {

我在unity中制作了一个开门脚本,这就是代码:

void Update () {

    if (i < 5)
    {
        if (Input.GetMouseButtonDown(0))
        {
            transform.Rotate(Vector3.up * Time.deltaTime * 1080);
            i++;

        }
    }
    else if (i >= 5)
    {
        if (Input.GetMouseButtonDown(0))
        {
            transform.Rotate(Vector3.down * Time.deltaTime * 5400);
            i = 0;
        }
    }


}
void更新(){
如果(i<5)
{
if(Input.GetMouseButtonDown(0))
{
变换.旋转(Vector3.up*Time.deltaTime*1080);
i++;
}
}
如果(i>=5),则为else
{
if(Input.GetMouseButtonDown(0))
{
变换.旋转(Vector3.down*Time.deltaTime*5400);
i=0;
}
}
}

问题是,每当我在任何地方和每次都单击鼠标时,操作就会发生。我只想在我点击门的时候让它发生。

你想使用游戏对象的碰撞器。

你想使用游戏对象的碰撞器。

你可以使用光线投射来检测你点击的对象,或者你可以使用OnMouseDown()事件,比如:


OnMouseDown在移动设备上不起作用

您可以使用光线投射来检测正在单击的对象,或者可以使用OnMouseDown()事件,如:


OnMouseDown在移动设备上不起作用

好吧,我在OnMouseDown()上创建了一个void,并将所有代码放在isnide中,而不是void更新,但它什么都不做。这个脚本附加到门上,门上有一个碰撞器组件?嗯,我对所有这些东西都很陌生,我不太了解。碰撞组件到底是什么?嗯,我在mousedown()上创建了一个void,并将所有代码放在isnide中,而不是void更新,但它什么都不做。这个脚本附加到有碰撞组件的门上?嗯,我对所有这些东西都很陌生,我不太了解。碰撞组件到底是什么?在重复答案中,使用5。对于重复答案中的3D对象(网格渲染器/任何3D碰撞器),使用5。对于3D对象(网格渲染器/任何3D碰撞器)
void OnMouseDown() {
    transform.Rotate(Vector3.up * Time.deltaTime * 1080);
}