【Unity 3d】プラグイン---DoTweenアニメーションメソッドの呼び出しと実行

【Unity 3d】プラグイン---DoTweenアニメーションメソッドの呼び出しと実行

ここに画像の説明を挿入します

1. 移動と回転 (主に Transform に適用されるメソッド 1 ~ 4)
1. DoTween を使用するには、まず名前空間を参照する必要があります using DG.Tweening;
2.transform.DOMove (ターゲット位置、費やした時間/秒) //Move メソッド
3.transform.DoLocalMoveX (ターゲット位置、費やした時間) //単一の移動メソッド
4.transform.DoLocalMove()//独自のローカル座標を移動
5.transform.DoRotate (ターゲット位置、時間) //回転
6.transform.DoLocalRotate () // ローカル角度を回転
7.transform.DORotateQuaternion (ターゲット位置、時間) // クォータニオン回転
8.transform.DOLookAt (ターゲット位置を見る、時間); // ターゲットを見るアニメーション
2. スケーリングのパラメータ説明オブジェクトとパンチ (スプリング効果) 関数の変換
1.transform.DOScale(Vector3.one * 2, 2); //ターゲット位置、時間
2.transform.DOPunchPosition(new Vector3(0, 1, 0 ), 2, 2, 0.1f);//同様のバネ効果//パラメータ: (1)、パンチ: 動きの方向と力の大きさ、(2)、持続時間、(3)、振動数 (周波数) // (4) 0の場合は目標点までの往復のみですが、0より大きい場合は出発点よりも往復が大きくなります。
3.transform.DOPunchRotation(); //パラメータの効果は上記と同じ
4.transform.DOPunchScale();//パラメータの効果は上記と同じです
3.オブジェクト Shake のシェイク効果
1.transform.DOShakePosition();//最初のパラメータはその持続時間、2 番目のパラメータは強度です3 番目のパラメータは振動の継続時間、3 番目のパラメータは振動の回数、4 番目の振動の方向
2.transform.DOShakeRotation(); // パラメータの効果は上記と同じ
3.transform.DOShakeScale() ; // パラメータの効果は上記と同じ
4. Blend
名を付けてアニメーションを混合するメソッドをブレンドし、アニメーションを混合できるようにする
本来、2 つの Move メソッドが同時に実行された場合、最新のアニメーション コマンドのみが実行されます (2 つの移動が実行されるため)競合がある場合、最新のコマンドが実行されます) 例
:
transform.DOMove(Vector3.one, 2);
transform.DOMove (Vector3.one * 2, 2);
結果として、オブジェクトは (2, 2) に移動します。 , 2) 座標
。DOBlendableMoveBy メソッドには 2 つの特徴があります:
1) 複数の同時実行が可能
。例:
transform.DOBlendableMoveBy(new Vector3(1, 1, 1), 1);
transform.DOBlendableMoveBy(new Vector3(-1, 0) , 0), 1);
開始点を(0,0,0)とすると、最終アニメーションが停止したときの座標は(0,1,1)となり、2位置加算した点に移動することになります。
2) インクリメンタルアニメーション変換ですDOBlendableMoveBy(new Vector3(1, 1, 1), 1); 実際の点を(1,1,1)とすると、アニメーションが最後に停止するときの座標は(2) ,2,2) そのパラメータはターゲット ポイントではなく、移動する量です (主な説明は、最初のパラメータが DOMove とは異なり、DoMove がターゲット ポイントであり、これが増分であるということです)。 次の 3 つの
関数は次の 3 つです。同じtransform.DOBlendableRotateBy()、transform.DOBlendableScaleBy()、transform.DOBlendablePunchRotation()
5. マテリアル(マテリアルアニメーション)のカラーメソッド
1)、マテリアルボールの取得マテリアル
マテリアル = GetComponent().material;
2)、マテリアルボールのカラーを変更マテリアル
マテリアル.DOColor(Color.black, 2) ;//パラメータ: 1. ターゲットカラー、グラデーション時間
! 呼び出されるのは、オブジェクト自体の Shder の _Color 属性です。そのようなプロパティがない場合、呼び出しは失敗します。これを呼び出して色を変更したい場合は、カラーの名前を渡す必要があります。シュダー (material.DOColor(Color.black, " "これにシュダー カラー変数の名前を入力します)", 2);
3) アルファ値と透明度を変更して、
material.DOFade(0, 2);
4) カラー グラデーション
Gradient は Unity のグラデーション エディターであり、以下のメソッドで直接、
material.DOGradientColor(Gradient, “_Color”, 3); を
5) マテリアル オフセットの値を変更します
。material.DOOffset(new Vector2(1, 1), 2);
6) 指定されたシェーダ属性の名前に対応する Vector4 の値を変更します
。material.DOVector(new Vector4(0, 0, 0) , 1) , “_Color”, 3);
7) 色の混合は位置混合アニメーション
同じであり、干渉することなく同時に実行でき、色が混合されます。
, 3);
material.DOBlendableColor (Color.greew “_Color”, 3);
6. カメラ メソッド カメラ
1) 画面の視野角のアスペクト比を調整します。最初のパラメータは幅と高さの比率 (幅/高さ) です。
Camera.DOAspect(0.6f, 2 );
2) カメラの背景パラメータの色を変更します
。camera.DOColor(Color.blue, 2);
3) カメラの
ニアプレーンの値を変更します。
4) カメラの遠方平面の値を変更します
。camera.DOFarClipPlane( 2000, 2);
5) 拡大効果などのカメラの FOV の値を変更します
。camera.DOFieldOfView(30, 2);
6) カメラの直交サイズを変更します。
カメラ.DOOrthoSize(10, 2);
7) 画面のピクセルに応じて計算される表示範囲 (解像度サイズを変更する方法)
Camera.DOPixelRect(new Rect(0f, 0f, 600f, 500f), 2);
8) 画面のパーセントに応じて計算される表示範囲 (パーセント方式で解像度を変更する)レートサイズの)
camera.DORect(new Rect(0.5f, 0.5f, 0.5f, 0.5f), 2);
7 と 8 はマルチカメラ分割画面効果を実現できます
9) カメラシェイク
カメラシェイクエフェクトパラメーター: 継続時間、強度、振動の数、ランダム性、フェードアウト
パワー: 実際には振動の振幅であり、カメラが及ぼす力の量として理解できます Vector3 を使用すると、各軸ごとに異なる強さを選択できます 振動: の数ランダム

: 振動の方向を変えるランダムな値 (サイズ: 0~180)
フェードアウト: 移動がエンド
カメラでゆっくりと元の位置に戻るかどうか。DOShakePosition(1, 10, 10, 50, false );
7. テキスト展開メソッドの紹介
text.DOColor(Color.black, 2) ; text.DOFade(0, 2); text.DOBlendableColor(Color.black, 2);
このメソッドは、コンテンツを入力するため、より興味深いです。最初のパラメータは、 time に従ってテキスト ボックスに 1 つずつ渡されます
。最初のパラメータは現実的な単語で、2 番目のパラメータは時間です。これには、最初に高速なテキスト、次に低速なテキストの効果が伴います。DOText("context "、2);
一定速度で実装される場合:
text.DOText(“context”, 2);.SetEase(Ease.Linear);
8. キュー(DoTween 独自のメソッド実装)
シーケンス quence = DOTween.Sequence();
1) キューにアニメーションを追加します (このメソッドを使用して Toアニメーションの再生が終了し、次のアニメーションに従う必要がある場合は、このメソッドを順番に記述するだけです)
quence.Append(transform.DOMove(Vector3.one, 2));
2) 時間間隔を追加します (必要な場合)再生するアニメーションを実装する) 完了後、数秒間一時停止し、他のメソッドを実行するときに次のメソッドを呼び出す必要がある)
quence.AppendInterval(1);
3) 時点に応じてアニメーションを挿入する (時間内にアニメーションを追加する)自分で指定したアニメーションと重なった場合、アニメーションは上書きされます) )
最初のパラメータは時間です。このメソッドは指定された時点にアニメーションを挿入します。この文を例にとると、DORotate アニメーションをこのキューに追加しますこれ
キューに追加された最初のシーケンスではありませんが、0 秒で実行されます。4) 現在のアニメーションに参加します (両方を再生します) Join は結合し、現在実行中のアニメーションと一緒にアニメーションを実行します。 次の 2 行のコードでは、DOMove がquence.Append(transform.DOScale(new Vector3(2, 2, 2), 2)); quence.Join(transform.DOMove(Vector3.zero, 2)); DOScale と一緒に。






5) アニメーションの事前追加
事前追加では、Append の直前、つまり先頭にアニメーションを追加します。
quence.Prepend(transform.DOScale(Vector3.one * 0.5f, 1));
ここで、シーケンスの問題
ここでもキューの性質が考慮されますが、事前追加は元のキューと比較すると逆のキューです。例:
Sequence
quence = DOTween.Sequence();
quence.Append(transform. DOMove(Vector3.one, 2));
quence.Prepend(transform.DOMove(-Vector3.one*2, 2));
quence.PrependInterval(1);
実行順序は PrependInterval----Prepend---- です。 -Append
は最後に追加されたものです キューの先頭に
6) 時間間隔を事前に追加します
quence.PrependInterval(1);
9. コールバック関数
1) コールバックを事前に追加します
quence.PrependCallback(PreCallBack);
2) を追加します指定された時点でのコールバック (最初のパラメータはコールバック時間、2 番目のパラメータはコールバック メソッド)
quence.InsertCallback(0, InsertCallBack);
3) コールバックを追加
quence.AppendCallback(CallBack);
10. トゥイーン設定は
アニメーションの直後に行うことができます。パラメータは次のように 1 行ずつ割り当てることもでき、パラメータは最終的に SetAs を介して渡されます。TweenParams
para = new TweenParams();
1)最初のアニメーション ループを設定します
パラメータはループの数です - 1 は無限ループを表します
2 番目のパラメータはループ モードです
リスタート
ヨーヨーは開始点から目標点まで移動し、その後目標点から戻ります。 、サイクル
Incremental は移動方向に動き続けます
para.SetLoops(-1, LoopType.Yoyo);
2) パラメータを設定します
transform.DOMove(Vector3.one, 2).SetAs(para);
3) 自動終了を設定しますアニメーション (パラメータが True の場合、アニメーション終了直後にアニメーションが終了します)
transform.DOMove( Vector3.one, 1).SetAutoKill(true);
4)from tweening
たとえば; は、ターゲット ポイントからターゲット ポイントに戻ることです。開始点
transform.DOMove(Vector3.one, 2).From(true);
Fromパラメーター isRelative (相対) :
が true、渡される値はオフセット、つまり、現在の座標 + 渡される値 = ターゲット値; false の場合
、渡された値はターゲット値、つまり、渡された値 = ターゲット値
5) アニメーション遅延を設定します。
変換.DOMove(Vector3.one, 2).SetDelay(1);

  6)设置动画运动以速度为基准
     例如:
     transform.DOMove(Vector3.one, 1).SetSpeedBased();
      使用SetSpeedBased时,移动方式就变成以速度为基准
      原本表示持续时间的第二个参数,就变成表示速度的参数,每秒移动的单位数

  7)设置动画ID (下面这个动画的 就以"Id”表示了)
    transform.DOMove(Vector3.one, 2).SetId("Id");
    我们直接可以在其他部位这么调用它 DoTween.Play("Id");

  8)设置是否可回收
    为true的话,动画播放完会被回收,缓存下来,不然播完就直接销毁
    transform.DOMove(Vector3.one, 2).SetRecyclable(true);

  9)设置动画为增量运动
      例如:
       transform.DOMove(Vector3.one, 2).SetRelative(true);
        SetRelative参数 isRelative(相对的):
        为true,传入的就是偏移量,即当前坐标 + 传入值 = 目标值
        为falese,传入的就是目标值,即传入值 = 目标值

  10)设置动画的帧函数
   例如:
    transform.DOMove(Vector3.one, 2).SetUpdate(UpdateType.Normal, true);
     第一个参数 UpdateType :选择使用的帧函数
     UpdateType.Normal:更新每一帧中更新要求。 
     UpdateType.Late:在LateUpdate调用期间更新每一帧。 
     UpdateType.Fixed:使用FixedUpdate调用进行更新。 
     UpdateType.Manual:通过手动DOTween.ManualUpdate调用进行更新。
     第二个参数:为TRUE,则补间将忽略Unity的Time.timeScale

11. イーズ モーション カーブの設定
1) イーズ列挙をパラメータとして使用します
例:
transform.DOMove(Vector3.one, 2).SetEase(Ease.Flash, 3, 0f);
2 番目のパラメータ Amplitude (振幅) : 実際の移動回数です。始点から目標まで移動すると 1 回としてカウントされ、その後 2 回戻ります。
第 3 パラメータの期間の値の範囲は - 1 ~ 1 です。
値が > の場合は、 0, 活動範囲の減衰値であり、活動範囲が大きい方から大きい方へ変化します 値が小さい(地面に落ちるバスケットボールのような) = 0 の場合、開始座標間で動きが均一であることを意味し
ます値が < 0 の場合、ターゲット
座標に向かって力がかかり、移動範囲が少しずつ増加し、最終的にはターゲット点に近づきます。これら 2 つのパラメータは 4 つのカーブにのみ役立ち
ます他のカーブについては、イーズ列挙パラメータのみが有効です。

    2)使用AnimationCurve当作参数
      例如:
       transform.DOMove(Vector3.one * 2, 1).SetEase(curve);
      AnimationCurve 横轴是时间,不过不是具体的时间,而是时间比例
      AnimationCurve 纵轴是倍数
      假设纵轴的值为v,传入DOMove的第一个参数endValue是e,起始点坐标是s
      此物体最后动画结束时的实际坐标即为 v* (e -s)+ s

     3)以回调函数为参数
      例如:
       transform.DOMove(Vector3.one * 2, 1).SetEase(MyEaseFun);

       //返回值是运动距离的百分比 值应为0~1之间,最后的值需为1,不然停留的位置不会是目标位置
       private float MyEaseFun(float time, float duration, float overshootOrAmplitude, float period)
       {
           return time / duration;
       }

12. コールバック関数
1) アニメーション完了コールバック
transform.DOMove(Vector3.one, 2).OnComplete(() => { });

  2)动画被杀死时回调
    transform.DOMove(Vector3.one, 2).OnKill(() => { });

  3)动画播放时回调,暂停后重新播放也会调用
    transform.DOMove(Vector3.one, 3).OnPlay(() => { });

  4)动画暂停时回调
    transform.DOMove(Vector3.one, 2).OnPause(() => { });

  5)动画回退时回调
    以下情况会被调用
    使用DORestart重新播放时
    使用Rewind倒播动画完成时
    使用DOFlip翻转动画完成时
    使用DOPlayBackwards反向播放动画完成时
    transform.DOMove(Vector3.one, 2).OnRewind(() => { });

  6)只在第一次播放动画时调用,在play之前调用
    transform.DOMove(Vector3.one, 2).OnStart(() => { });

  7)完成单个循环周期时触发
    transform.DOMove(Vector3.one, 2).OnStepComplete(() => { });
  8)帧回调
    transform.DOMove(Vector3.one, 2).OnUpdate(() => { });

  9)在路径动画时,改变目标点时的回调,参数为当前目标点的下标
    transform.DOMove(Vector3.one, 2).OnWaypointChange((value) => { });

13. アニメーション制御方法
1) 再生
transform.DOPlay();

  2)暂停
    transform.DOPause();

  3)重播
    transform.DORestart();

  4)倒播,此方法会直接退回起始点
    transform.DORewind();

  5)平滑倒播,此方法会按照之前的运动方式从当前位置退回起始点
    transform.DOSmoothRewind();

  6)杀死动画
    transform.DOKill();   
  7)翻转补间的方向
    transform.DOFlip();
  8)跳转时间点
    第一个参数跳转的时间点,第二个参数是跳转后是否播放动画
    transform.DOGoto(1.5f, true);

  9)反向播放动画
    反向播放动画,在动画播放到一半时执行,会退回起始点,在一开始执行看不到效果是因为,物体本身就在起始点
    transform.DOPlayBackwards();

  10)正向播放动画
    正向播放动画
    transform.DOPlayForward();

  11)TogglePause
    当暂停时,执行就继续播放,播放时,执行就暂停
    transform.DOTogglePause();

14. データを取得するメソッド
1. クラスメソッド
1) 一時停止中のアニメーションをすべて返し、そうでない場合は null
DOTween.PausedTweens();
2) 実際に再生されたアニメーションをすべて返し、そうでない場合は null
DOTween.PlayingTweens();
3) Get指定された ID の配列。
例:
DOTween.TweensById("id", true);
は、条件を満たすアニメーションの配列を返します。
最初のパラメーターはアニメーションの ID です。2
番目のパラメーターは、アニメーションのみを収集するかどうかです。再生中のアニメーション。4
) 指定されたオブジェクトの配列を返します。
例:
DOTween.TweensByTarget(transform, true);
条件を満たすアニメーション配列を返します。
最初のパラメータは、アニメーションを再生するオブジェクトです。
例: transform.DOMove(Vector3.one, 2); 最初のパラメータは、transform で渡されます。material.DOColor
(Color.White, 2); 最初のパラメータは、マテリアル オブジェクトのマテリアルで渡されます。2
番目のパラメータは、マテリアル オブジェクトのみを収集するかどうかです。 5)渡された
オブジェクトにアクティブなアニメーションがあるかどうかを収集します
。例:
DOTween.IsTweening (transform);
最初のパラメーターは、検出されたオブジェクトです。2
番目のパラメーターは、アニメーションが再生状態にあるかどうかを検出するかどうかです。
true の場合、指定されたオブジェクトは再生状態にあるときに true を返します。
false の場合、指定されたオブジェクトにアニメーションがあるかどうかのみを検出します (一時停止状態でもカウントされます)。ある場合は、true を返します。 6) 再生中のアニメーションの総数 現在、遅延
再生状態にあるアニメーションもカウントされます。
DOTween.TotalPlayingTweens();
2. インスタンスメソッド
_tweener = transform.DOMove(Vector3.one, 2)
1) アニメーションの実行時間の属性を示し、読み書き可能
_tween.fullPosition = 1;
2) アニメーションの回数を示しますhas been completed_tweener.CompletedLoops
() 3) アニメーションの取得_tweener.Delay()
の遅延時間; 4) アニメーションの継続時間を取得パラメータ true は計算ループ時間を意味し、無限ループは Infinity _tweener.Duration(false) ) 5) アニメーションの再生時間が経過しました。パラメータ true は計算ループ時間を意味します_tweener.Elapsed() 6) アニメーションの進行状況のパーセンテージを返します。開始点は 0、目標点は 1 です。ヨーヨー ループ モードの場合、_tweener.ElapsedDirectionalPercentage() 7) アニメーション間隔を返します。使用されるパーセンテージ。単一ループの値は 0 ~ 1 です。パラメータは、ループを含めるかどうかです。 true の場合、戻り値はループの合計間隔の使用率です。無限ループの場合、戻り値は 0 です。













_tweener.ElapsedPercentage(true)
8) アニメーションがactiveかどうか
_tweener.IsActive();
9) 逆アニメーションかどうか
_tweener.IsBackwards();
10) アニメーションがcompleted_tweener.IsComplete
(); 11) Initialized_tweener
かどうか。
IsInitialized ();
12) 再生中かどうか
_tweener.IsPlaying();
13) ループの数を返します、無限ループは Infinity
_tweener.Loops();

リソースの取得: https://download.csdn.net/download/g947195395/87684350

おすすめ

転載: blog.csdn.net/g947195395/article/details/130126698