좋아, 그래서 나는 그냥 설정된 시간 도약한다 어차피 사용자의 도청 m의 의미에 의해 제어하지만이 사실 인 경우에 달려 있어야하는의 animationnthe 속도가 그것은 "stillOpening의 말에 topSkyBoxOpen에 동일합니다 의미Unity - 특정 애니메이션 상태가 켜져있는 동안 어떻게 깜박입니까? 말</p> <pre><code>cameraAnim.GetCurrentAnimatorStateInfo (0).IsName ("stillOpening") </code></pre> <p>:
skybox.SetFloat ("_Exponent1",Mathf.Lerp(skybox.GetFloat("_Exponent1"), topSkyBoxOpen, ratio));
: 내 물질이 떠 필요한이 애니메이션 (빠르게 또는 느리게이 소요 된 시간 상관없이) 최종 값에 lerped 것으로 ". 타이밍을 조정하는 방법을 모르겠습니다.
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을하려고하기 때문에이 될 수 읽기 :
나는 업데이트()이 시도했다. 이것이 가능한가? 속도에 상관없이 애니메이션이 재생되는 동안 어떻게 저지 할 수 있습니까?
좋아, 덕분에 (작품 값을 먹으 렴 때문에 BTW 어디? 5 기간 동안 거지), 유일한 얻는다 뛰어 약 6.28, 모든 방법이 아님 – skyguy
** 어디서 5를 얻었습니까? ** 아무 곳. 원하는 번호를 사용할 수 있습니다. 이것은 단순히 현재의'_Exponent1' 상태에서 * 5 * 초 안에'topSkyBoxOpen'으로 점진적으로 갈 것이라는 것을 의미합니다. 원하는대로 변경할 수 있습니다. – Programmer
** 도약은 모든 방법이 아닌 6.28 정도에 이릅니다 ** 이것은 '_Exponent1'의 cucrrent 값에서'topSkyBoxOpen' 값으로 갈 것입니다. 'topSkyBoxOpen'가 6.28이면 6.28에서 멈추게 될 것이므로'topSkyBoxOpen' 변수의 값을 확인하십시오. 'topSkyBoxOpen' 변수가 멈추는 변수와 다른 값인 경우'if (! cameraAnim.GetCurrentAnimatorStateInfo (0) .IsName ("stillOpening"))을 제거하십시오. { yield break; }'코드에서. 그게 당신의 문제를 해결하는지 알려주세요. – Programmer