2017-02-21 66 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

删除了我的答案,因为这一个使用了布尔的想法,我想用较少的代码。 –