前々から、便利だという噂はネットの記事やTwitterなどで見ていたが、テキストのアニメーションなんかも自分で実装できた方がいいに決まっているという頑固一徹を通してきたが・・・
まあまあ、できるようになったし
テキストのアニメーションとか、UIのアニメーションのエキスパートになりたいわけではないし
土日しか時間がない中では、だんだん効率を重視したくなり
とうとう手を出しました!!
お分かりだろうか??
わかりにくい(-_-メ)
文字のスプライトが下から上がってきて、フェードで消えるというやつ
DOTweenのアセットのインストール、初期設定は下記を参考にさせてもらいました
(ありがとうございました!!)
◆今回の実装スクリプト
テキストのスプライトにアタッチして使用
まずは使えるようにするおまじない
using DG.Tweening;
public class RogoCrtl : MonoBehaviour
{
//移動 移動量、移動時間はインスペクターで設定できるようにしている
public float MoveX = 0;
public float MoveY = 0;
public float MoveZ = 0;
public float MoveDuration = 1.5f;
public float FadeDuration = 1.0f;
bool IsReady = true;
public void Action()
{
//準備ができているかのフラグ
IsReady = false;
//初期位置に戻すために位置を覚えておく
Vector3 oldposition = transform.position;
//ここが本題
//移動
transform.DOLocalMove(new Vector3(MoveX, MoveY, MoveZ), MoveDuration)
.SetRelative() //相対距離に設定
.SetEase(Ease.OutCubic) //終わりに向けてスピードが遅くなるように設定
.OnComplete(() => { //処理が終了した時のコールバック
//フェードアウト
GetComponent<SpriteRenderer>().DOFade(0, FadeDuration)
.OnComplete(() => { //処理が終了した時のコールバック
transform.position = oldposition; //元の位置に戻す
GetComponent<SpriteRenderer>().DOFade(1, 0.1f) //元の濃さに戻す
.OnComplete(() => { //処理が終了した時のコールバック
IsReady = true; //処理が終了したのでフラグを更新
});
});
});
}
〇インスペクター
下から上に移動させるので、Y軸に移動距離を入力
移動する時間を0.5秒に
フェードアウトの時間を1秒に
◆動きの参考にさせてもらったサイト (ありがとうございました!!)
以上