주로 transform의 변환 관련해서 Update에서 계속해서 업데이트 해주는데
이것이 때로는 성능 저하가 걸릴때가 있다
특히 transform 변환을 위해 어떤 수칙 연산을 한다든지 말이다
transform이 변환이 없는데 매 업데이트마다 연산을 한다든지 여러 저하가 걸리는 상황이 있을 것이다
그런 경우를 위해 이러한 코드를 짜봤다
public void Move()
{
before = transform;
// 변화가 없을때는 Move 탈출
if(!System.Object.ReferenceEquals(before, null) && !System.Object.ReferenceEquals(after, null) &&
_input.GetMove() == Vector2.zero && before == after)
{
if (animationBlend == 0)
{
Debug.Log("NotMoving");
return;
}
}
// Target Speed 결정
if(_input.GetMove() == Vector2.zero)
{
...
}
{ .... }
after = transform;
StarterAsset의 ThirdPersonController를 리팩토링 하다가 구현했다
이 코드를 사용한 포스트 : StarterAsset's ThirdPersonController Refactoring