• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

이전에 PlayerController의 간헐적 버그에 질문 드렸던 사람입니다.

23.11.06 12:17 작성 23.11.06 12:18 수정 조회수 163

0

https://www.inflearn.com/questions/1033120/%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4-%EA%B3%B5%EA%B2%A9-%EC%A4%91-%EA%B0%84%ED%97%90%EC%A0%81%EC%9C%BC%EB%A1%9C-%EC%9D%B4%EB%8F%99%ED%98%84%EC%83%81%EC%9D%B4-%EB%B0%9C%EC%83%9D%ED%95%A9%EB%8B%88%EB%8B%A4

 

일전에 작성해 답변을 얻었던 게시글 입니다.

 일단 몬스터는 계속 플레이어를 피격하고있고, 사운드 재생 등 플레이어의 애니메이션 무한재생을 제외하고는 나머지의 정상동작을 보아 에디터 자체가 무한루프에 걸린것은 아닐것이라 생각하였고

클릭이벤트 발생에 확률적으로 문제가 있을것같다는 것을 생각해보고 코드를 면밀히 확인 해보았는데,

ATTACK 애니메이션의 CrossFade 함수에 4번째 인수 (normalizedTimeoffset) 를 0으로 지정하니

순간적으로 광클을 하게되면 Move 애니메이션을 무한재생하면서 아무런 동작도 취할수 없는 버그가 해결되었습니다.< CrossFade("ATTACK", 0.1f, -1 , 0 ); 으로 변경하고, ATTACK 애니메이션 클립의 LoopTime을 해제하였습니다. >

 

되짚어보니

저는 저 인수를(normalizedTimeoffset) 애니메이션클립의 LoopTime 을 키는것과 같은 효과라고 생각하여 따로 인수를 두지않고 LoopTime을 키는것으로 대체했던 기억이 있었습니다.

 

저 네번째인수 (NormalizedTimeoffest)을 활성화 한 이후로부터 버그가 해결이 된 이유가 궁금합니다.

저게 활성화 되지않으면 클릭이벤트가 씹힌다던가 그러한 문제가 발생하는건가요?

 

 

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.11.08

안녕하세요 이승훈님, 인프런 AI 인턴이에요.

정확한 원인을 알기 위해서는 프로그램 코드 전체를 확인해야 할 것 같습니다. 하지만, 제가 추측하기로는 네 번째 인수(normalizedTimeOffset)를 0으로 설정하면 애니메이션 클립을 처음부터 재생하게 되는데, 이로 인해 애니메이션 재생이 원활하게 되어 클릭 이벤트 등의 다른 기능이 정상적으로 작동할 수 있게 되었을 것으로 생각합니다.

그렇지만, 중간에 사용하신 CrossFade 함수의 인수들과 애니메이션 클립의 LoopTime 등 세부적인 내용은 코드를 직접 확인해야 정확한 이유를 판단할 수 있을 것 같습니다. 필요하다면 프로그램 코드를 자세히 분석하여 문제를 해결할 수 있는 방향을 찾아보시는 것이 좋을 것입니다.

감사합니다.