質問: new Vector3(1, 1, 1);//scaleを戻す this.transform.Translate(-1, -1, -41);//座標修正 } i*= -1; } } ``` ### 試したこと Event Triggerを詳しく調べましたがわかりませんでした。 ### 補足情報(FW/ツールのバージョンなど) Unity 2018.2.16f1 Personal
回答: Event TriggerのPointer Click→オブジェクトをクリック時、**マウスのボタンを離した1フレーム目**だけメソッドを呼ぶ Input.GetKeyDown→**キーが押された1フレーム目だけtrue**、それ以外はfalse Input.GetKey→**キーが押されている間ずっと(毎フレーム)true**、それ以外はfalse なので現状のコードだと 「マウスのボタンを離すタイミングとキー入力が同じフレームである」という状況でないと条件を満たしません。 GetKeyを使った場合でも「マウスのボタンを離すタイミングでキー入力が行われている(キー押しっぱなしの状態でクリックする)」でないと条件を満たしません。 希望の動作をさせるにはコード設計の見直しが必要です。 (なお本題とは関係ありませんが、メソッドの最初で`int i = 1;`しているので、絶対に`if(i==1){//scaleが(1,1,1)のとき`を満たし、`}else{//scaleが(1,1,1)じゃないとき`には入りません。最終行の`i*= -1;`は全く無意味な処理です)