2017-02-21 2 views
1

Klick machte ich eine Tür Skript in der Einheit zu öffnen, dass der Code von ihm ist:Unity3d Aktionen, wenn ein Objekt

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; 
     } 
    } 


} 

Das Problem ist, dass Maßnahmen stattfinden, wenn ich die Maus überall und jederzeit klicken. Ich möchte es nur machen, wenn ich auf die Tür klicke.

+0

In duplizierten Antwort auf mobilen Geräten arbeiten, verwenden * 5.Für 3D-Objekt (Mesh-Renderer/irgendein 3D-Collider) * – Programmer

Antwort

0

Sie möchten OnMouseDown() verwenden, die den Collider des GameObjects verwendet.

+0

Nun, ich machte eine void OnMouseDown(), und setzen Sie nicht den gesamten Code anstelle der void-update, aber es tut nichts. –

+0

Dieses Skript ist an der Tür angebracht, die eine Collider-Komponente hat? –

+0

Hm, ich bin ziemlich neu in all dem Zeug und ich verstehe nicht zu viel von denen. Was ist genau die kollidierende Komponente? –

0

Sie können raycasts verwenden zu erkennen, welches Objekt sind, klicken Sie, oder Sie können das Ereignis OnMouseDown() verwenden, wie:

void OnMouseDown() { 
    transform.Rotate(Vector3.up * Time.deltaTime * 1080); 
} 

OnMouseDown nicht

Verwandte Themen