2017-02-21 61 views
0

門的問題是,我想打開更多的門,每個鼠標點擊它。點擊5次後,它應該向相反方向移動,直到它關閉。統一門打開和關閉

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

if (i >= 5) 
{ 
    if (Input.GetMouseButtonDown(0)) 
    { 
     transform.Rotate(-Vector3.up * Time.deltaTime * 1080); 
     i--; 
    } 

} 

所以這段代碼有一個問題,我不知道在哪裏。我認爲這是在第三個if,因爲它不做相反的方向(閉幕)。

+0

沒有給出錯誤或只是沒有工作取得的變化?第三如果可能是'else if'。另外,你的代碼在關閉後遞減,並且會停留在開啓/關閉循環中...也許改變i> = 5到i <10,並使i--到++ ++ – depperm

+0

它工作正常,直到第四次點擊它打開。那麼它就不會朝相反的方向進行收盤。 –

+0

我會假設'i'初始化爲1? – trahane

回答

2

至於要關閉4點擊後車門的門應在相反的方向

移動試試這個:

//declare this var as a flag 
bool inc = true; 


if (Input.GetMouseButtonDown(0)) 
{ 
    if(inc) 
    { 
    transform.Rotate(Vector3.up * Time.deltaTime * 1080); 
    i++; 
    } 
    else 
    { 
    transform.Rotate(-Vector3.down * Time.deltaTime * 1080); 
    i--; 
    } 

} 


if(i==0) 
{ 
    inc = true; 
} 
if(i==5) 
{ 
    inc = false; 
} 

或代替-Vector3.up,您可以使用Vector3.down

編輯:根據設置i4

+0

好吧,謝謝大家的迴應,我嘗試過,但問題是我下降到4,然後它做第一次如果。 –

+0

@ ZannikosCh修復了它現在嘗試 – trahane

+0

刪除了我的答案,因爲這一個使用了布爾的想法,我想用較少的代碼。 –