2017-02-21 8 views
1

Я сделал отпирание двери сценария в единстве Вот код этого:Unity3D действия при щелчке объекта

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


} 

Проблема заключается в том, что действие происходит, когда я нажимаю мышь везде и каждый раз. Я хочу, чтобы это произошло, только когда я нажимаю на дверь.

+0

В дублированной ответ, использование * 5.For 3D-объект (Mesh Renderer/любой 3D-коллайдер) * – Programmer

ответ

0

Вы хотите использовать OnMouseDown(), который использует коллайдер GameObject.

+0

Ну, я создал пустоту OnMouseDown() и поставил isnide весь код вместо обновления void, но он ничего не делает. –

+0

Этот скрипт прикреплен к двери с компонентом коллайдера? –

+0

Хм, я довольно новичок в этом, и я не понимаю слишком много. Что такое компонент коллизий? –

0

Вы можете использовать raycasts для определения, какой объект вы щелкая, или вы можете использовать OnMouseDown Event(), например:

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

OnMouseDown не будет работать на мобильных устройствах

Смежные вопросы