public IEnumerator DanceStart()
{
WaitForSeconds WaitForSeconds = new WaitForSeconds(Time.deltaTime);
for (int i = startFrame; i < endFrame + 1; i++)
{
trChild = dancer.transform.GetChild(i);
nowFrame = i;
nowSecond = (float)nowFrame / 30;
nowSecond = (float)Math.Truncate(nowSecond * 100) / 100;
trChild.gameObject.SetActive(true);
yield return WaitForSeconds;
trChild.gameObject.SetActive(false);
}
if (loop == true)
{
StartCoroutine("DanceStart");
}
else
{
lastChild.gameObject.SetActive(true);
}
}
800장 정도되는 오브젝트를 0번째부터 800번째까지 순서대로 껐다 켜는 방식으로 30프레임 기준으로 자연스레 움직이는걸 하려고 하는 코드인데
0번이 켜지고 yield return WaitForSeconds; 을 통해서 TIME.DELTATIME 만큼 기다렸다가 걔가 꺼지면서 FOR문의 다음 i로 1번인 애가 켜지는방식임.
이게 처음 한바퀴는 분명히 30프레임 맞춰서 재생 잘 되거든?
근데 문제가 루프 불값을 주고 코루틴을 다시 반복되게 할때 프레임이 ㅈㄴ 빨라짐.. 이게 왜 빨라지는지 이유를 모르겠음..
댓글 0