【Unity】DOTweenでシーク的なことをする
概要
DOTweenはUnityで簡単にアニメーションを作れるアセットです。
DOTweenのアニメーションに対して、YouTubeのシークバーのようにプレイヤーが再生位置を調整できるようにしたい場面があったので、その実装方法について書いていきます。
方法
GoToメゾットを使えば、時刻(秒)で再生位置を指定できます。
ここでは、Sliderをシークバーにして、EventTriggerもアタッチしてマウスを離したタイミングで再びPlayされるようにしています。
using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class SeekSample : MonoBehaviour { public Transform cube; public Slider slider; private Sequence sequence; void Start() { //適当なアニメーションを作成 sequence = DOTween.Sequence() .Append(cube.DOShakeRotation(3.0f)) .Join(cube.DOJump(cube.position, 2.0f, 3.0f, 3.0f)) .SetAutoKill(false); } void Update(){ slider.SetValueWithoutNotify(sequence.position / sequence.Duration()); } public void OnSliderValueChanged(){ sequence.Goto(slider.value * sequence.Duration()); } public void OnPointerUp(){ sequence.Play(); } }
余談
以下のゲームでは、実際にこの方法を使っています。
masasgames.com