読者です 読者をやめる 読者になる 読者になる

もけの日常

アニメとマンガについて書いていくブログです

【Unity】スライダーを使用して線を書くごとに減少するゲージを作成

こんばんは!

最近は忙しく&金欠のため更新できていません...

古い漫画の感想でも書きましょうか...

 

さて、前置きはここまでにしておいて...

今回はUnityでスライダーを使用したゲージの作成をしていきます!

どんなゲージかというと、

線を描くことによって、ゲージが減少するようにしました!

こちらの記事を参考にしました!

qiita.com

 

線を描く機能については前の記事を参照してください。

f:id:toho_moko_keine_114:20160606002121p:plain

まずはink(線の量)とスライダー(線の量を表すためのゲージ)を宣言します。

 

次に、

f:id:toho_moko_keine_114:20160606002241p:plain

スライダーの取得を行います。

ここまでは、上の記事を参考にしていただければ作成できると思います。

 

さて、ここから本題ですね。

 

f:id:toho_moko_keine_114:20160606001553p:plain

このようになってます!

コードについて説明していくと、

 

if(ink>0){}

 

これは

もしinkが0よりも大きいなら、

つまり、スライダーの値が0よりも大きい場合に実行されます。

 

そのifの中にあるコードが線を描くコードになってます。

そのコードの内容については前の記事を参考に!

 

そして今回追加したのが、

 

ink-=0.013f;

slider.value = ink;

Invoke("inkReturn", 5f);

 

これですね!

 

まず、

ink-=0.013f;

これは、線を描くごとにゲージを0.013fずつ減らしています。

 

次に、

slider.value = ink;

これは、スライダーに反映させる作業です。

これがないとスライダーは減らないので注意してください!

 

そして、

Invoke("inkReturn", 5f);

Invokeは指定した秒数後に、指定したメソッドを呼び出すものです。

今回は、5秒後にinkReturnメソッドを呼び出しています。

なぜ5秒後なのかは、私が線を5秒後に消えるように設定しているからです。

 

5秒後に呼び出すことによって、線が消えたタイミングでinkReturnを呼び出しています。

 

では、inkReturnを見てみましょう。

void inkReturn(){

 ink += 0.013f;

 slider.value = ink;

}

これですね。

呼び出されると、

ink+=0.013f;

これでスライダーのゲージを増やします。

 

slider.value = ink;

先ほども説明しましたが、これがないと反映されないので注意してください!

 

これで完成です!

 

f:id:toho_moko_keine_114:20160606003552p:plain

 

左側にゲージがあります!

鉛筆のデザインは自作です!笑

 

f:id:toho_moko_keine_114:20160606003632p:plain

 

できてますね!

書くごとにゲージが減っています。

また、線が消えた後もスライダーのゲージは戻っていました。

 

やっぱりプログラミングは一つ一つの作業が楽しいですね...

 

では、今回はここまで!

ありがとうございました!