Unity備忘録7頁目「スクリプトを書いてみる3」

江上宿六です。

 

前回はスクリプトでCubeを回転させてみましたね。 ゲーム的処理ですけど

ゲーム感をあまり感じられない理由はインタラクティブ性といいますか、結局

操作をしていないからだと思います。 なので今回はその操作関連をやります。

 

 前回のスクリプトを改造して使おうと思うので、それがあれば楽が出来ます。

ということでプロジェクトビューのC#ScriptであるCubeControllerを開きます。

f:id:y6yegami:20180711190216p:plain

 Start関数を空にしました。 初期設定では移動量を設定しないというか、

宣言時の0のままにします。 次にUpdate関数の方に変更を加えていきます。

f:id:y6yegami:20180711190804p:plain

Input.GetMouseButtonDown(0)が真の時、中の処理を行う制御文です。

真になる条件はマウスの0番目のボタンが押されたときになるわけですが、

これは単純に左クリックの事です。 とりあえずこれで実行してみましょう。

f:id:y6yegami:20180710135723p:plain

起動時は停止しているCubeですが、左クリックをすると回転を開始しました。

このようにしてマウスの入力を検知します。 ではこれを改造していきます。

まず自動で回転速度が減速するようにしてみましょう。

f:id:y6yegami:20180712141014p:plain

 19行目で回転を適用し、その後の20行目で回転速度に0.98をかけています。

こうする事で徐々に回転速度が小さくなり、最終的には止まって見える程に

遅くなります。 一定の値を下回ったら完全に止めるような処理があっても

良いとは思いましたが、今は別に必要ないと思ったので無しです。

 

実行すると左クリックで動きだし、徐々に回転が遅くなっていったと思います。

更に何か要素を足してみましょう。 右クリックをすると逆方向に回転したり、

クリックをする度に移動量が増えていくようにしてみます。

f:id:y6yegami:20180712143446p:plain

Input.GetMouseButtonDown(1)で右クリックを検知できます。 また、回転速度は

代入ではなく加算と減算にしてやる事でクリックの度に回転速度が増減します。

実行するとほぼ説明通りに動いたと思います。 画像も用意出来たら良かったと

思ったんですが、動きがあるやつを用意するのはなかなか困難でして。

 

ともかくこのようにして入力を検知する事が出来ます。 もうこれで何か

ルーレット的なゲームは作れたりするでしょう。 なんせ参考にしたのが

ルーレットのゲームなわけですからね。

 

次回はこの入力周りをちょっと特集するというか、まとめたい感じです。