[OK]を、ので、私はちょうど設定時間lerpが、これが本当であるならば、それは依存持っている必要がありカントユーザーのタップメートルの意味によって制御されるanimationntheスピードがあります。年末Unity - 特定のアニメーション状態がオンのときにどうやってどうやったらどうするの?
cameraAnim.GetCurrentAnimatorStateInfo (0).IsName ("stillOpening")
を(高速または低速それがかかった時間に関係なく、)このアニメーション私はその最終値にlerpedているように、私の材料で、このフロートが必要になります。
それはstillOpening」の終わりにtopSkyBoxOpenに等しくなるように持っている意味skybox.SetFloat ("_Exponent1",Mathf.Lerp(skybox.GetFloat("_Exponent1"), topSkyBoxOpen, ratio));
"私はタイミングを調整する方法を知らない。
私はアップデート()でこれを試してみました:
void openSkyLerp()
{
float ratio = 0;
float duration = 0.5f; // this is the one that will control how long it takes
// value is in second
float multiplier = 1/duration;
while (cameraAnim.GetCurrentAnimatorStateInfo (0).IsName ("stillOpening")) {
ratio += Time.deltaTime * multiplier;
skybox.SetFloat ("_Exponent1",Mathf.Lerp(skybox.GetFloat("_Exponent1"), topSkyBoxOpen, ratio));
}
}
しかし、何もまったく起こりません - 私はそのはそれを1つのフレーム内のすべてのlerpを持ってしようとしているので、これがあるかもしれないお読みください。これは可能ですか?どのように速度に関係なくアニメーションが再生されている間、私はどうすることができますか?
[OK]を、おかげで(働く価値のthatsのでところでどこで?5期間に手に入れた)、のみを取得跳躍約6.28まで、すべてではありません – skyguy
**どこで5を取得しましたか?**どこでも。任意の番号を使用できます。それは単に、現在の '_Exponent1'状態から* 5 *秒でtopSkyBoxOpen'に徐々に移行することを意味します。あなたはそれをあなたが望むものに変えることができます。 – Programmer
**飛び跳ねは6.28周りにしか到達しません**これは '_Exponent1'のククルント値から' topSkyBoxOpen'の値になります。 'topSkyBoxOpen'が6.28の場合、それは6.28で止まりますので、' topSkyBoxOpen'変数の値を確認してください。 'topSkyBoxOpen'変数の値が停止時と異なる場合、' if(!cameraAnim.GetCurrentAnimatorStateInfo(0).IsName( "stillOpening"))を削除してください。 { yield break; } 'をコードから削除します。それがあなたの問題を解決するかどうか教えてください。 – Programmer