강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

코드킹님의 프로필 이미지
코드킹

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진

Animation Blending

Animation blending 파라미터 계산

작성

·

36

0

if (_moveToDset)

{

float target = _moveToDset ? 1f : 0f;

wait_run_ratio = Mathf.Lerp(wait_run_ratio, target, 10.0f * Time.deltaTime);

//wait_run_ratio = Mathf.Lerp(wait_run_ratio, 1, 10.0f * Time.deltaTime);

Animator anim = GetComponent<Animator>();

anim.SetFloat("wait_run_ratio", wait_run_ratio);

anim.Play("WAIT_RUN");

}

else

{

wait_run_ratio = Mathf.Lerp(wait_run_ratio, 0, 10.0f * Time.deltaTime);

Animator anim = GetComponent<Animator>();

anim.SetFloat("wait_run_ratio", wait_run_ratio);

anim.Play("WAIT_RUN");

}

wait_run_ratio가 지수승으로 계산되고 0으로 도달하지 않습니다.

image.png

play를 하면 Scene에서는 잘 뛰다가 멈춥니다.
파라미터에서는 계속 저런 지수값으로 연산이 되는데 Lerp로 보간되서 값이 도달하지 않아서 그런걸까요?
강의에서 보면 parameter 가 0.0에 잘 도달하던데 왜 저는 저런 연산을 계속 하는건지 모르겠습니다.

 

답변 1

0

Rookiss님의 프로필 이미지
Rookiss
지식공유자

float 특성상 근사치라서 그렇고 10^-12승 정도면 아~~~~~~~~~주 작은 값이라 0이라고 봐도 무방합니다.

코드킹님의 프로필 이미지
코드킹

작성한 질문수

질문하기