분류 전체보기 485

[Unity][팁, 방법] 애니메이션 파라미터 사용하지 않고 소스 제어

아래와 같이 파라미터가를 사용하지 않고 소스 제어 방법 1. Play사용하기 public PlayerState State { get { return _state; } set { _state = value; Animator anim = GetComponent(); switch (_state) { case PlayerState.Die: anim.Play("WAIT"); break; case PlayerState.Idle: anim.Play("WAIT"); break; case PlayerState.Moving: anim.Play("RUN"); break; case PlayerState.Skill: anim.Play("ATTACK"); break; } } } 2. CrossFad사용하기 CrossFad인자값 ..

Unity 2022.10.13

[Unity][방법] Status패턴 방법

1. enum으로 상태값 정의 2. 상태에 따른 함수 정의 3. 상태만 변경해서 사용 float wait_run_ratio; PlayerState _state = PlayerState.Idle; public enum PlayerState { Die, Moving, Idle, } void UpdateDie() { } void UpdateMoving() { Vector3 dir = _destPos - transform.position; if (dir.magnitude < 0.0001f) { _state = PlayerState.Idle; } else { float moveDist = Math.Clamp(_speed * Time.deltaTime, 0, dir.magnitude);//clamp는 시작 값 끝값..

Unity 2022.10.06

[Unity][방법] 에니매이션 합성하여 호출하는 방법

1. Animator 창에서 우클릭 2. motion 추가 3. 2개의 합성된 애니메이션 사용시 조절 파라미터 생성 4. 합성 애니메이션 소스에서 호출 (Mathf.Lerp는 부드러운 움직임을 위해) if (_moveToDest) { wait_run_ratio = Mathf.Lerp(wait_run_ratio, 1, 10.0f * Time.deltaTime); Animator anim = GetComponent(); 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 a..

Unity 2022.10.06