ue4で伸縮させるカスタムボタン作成のアニメーション処理にとりかかる

昨日は、ue4でカスタムボタンクラスを作って、タップイベントをうけとり、ボタンを拡大・縮小させるところまでやったので、今日は拡大・縮小をアニメーションさせる実装にとりかかりました。

scale_button

ボタンには、ループで実行させるイベントを継承していないので、おそらく自前でスレッドに結びつけるか、自分でスレッドを作ってそこでアニメーション処理を実行する必要があるんだと思います。

このボタンクラスにはおそらく使えませんが、FTickableGameObjectというtickを扱えるクラスなどもあり、選択肢は色々ありそうです。

その中で、自分はtimerクラスを使いました。

timerクラスのc++での使い方は、公式のページにもありますが、これだと大事なところが抜けていて、俺にはよくわからなかったです。

timerはこんな感じで動作させました。


FTimerDelegate timerDel;
FTimerHandle timerHandle;
timerDel.BindUFunction(this, FName("scaleAnimation"));
GetOuter()->GetWorld()->GetTimerManager().SetTimer(timerHandle, timerDel, 0.05, true);

こう書くと、scaleAnimationという名前の関数が0.05秒ごとに呼ばれます。

おそらく、もっと正しい方法があると思いますが、とりあえず機能として
作ることが今は大事だと思ってます。

これからは、gameEngineはunrealをメインに使って、細かいところまで深めていって、contributeすることが目標です。

2018/6/14

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です