2017-02-21 6 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--; 
    } 

} 

このコードには問題があり、どこにわからないのですか。私はそれが反対方向(閉鎖)をしないので、それが第3のifにあると思います。あなたはこれを試してみてください、反対方向

に移動する必要があります第4回クリックし、ドアの後にドアを閉じたいと

+0

としてiの設定に加えた変更に従って、それはエラーを与えるか、うまく動作しないのですか? 3番目のifは 'else if'である可能性があります。また、あなたのコードを閉じるとデクリメントされ、オープン/クローズサイクルでスタックされます。おそらくi> = 5をi <10に変更してi ++にします。 – depperm

+0

4回目のクリックまで有効です。その後、それは反対方向に閉じていません。 –

+0

'i'は1で初期化されていると仮定します。 – trahane

答えて

2

//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を使用することができます。

EDIT4

+0

よく、ありがとう、私はそれを試みましたが、問題は私が4に落ちて、次にそれが最初にやっているということです。 –

+0

@ ZannikosCh今修正しようとしました – trahane

+0

私の答えは削除されました。これは、私が少ないコードで行っていたブールのアイデアを利用しているからです。 –