daily debugging

Day 10 (2023.10.06) IK, FK, event, 대리자 본문

[유데미x스나이퍼팩토리] 10주 완성 프로젝트 캠프 - 유니티(Unity/학습일지

Day 10 (2023.10.06) IK, FK, event, 대리자

버근가 2023. 10. 6. 09:49
    // 애니메이터의 IK 갱신
    private void OnAnimatorIK(int layerIndex) 
    {
        // 총의 기준점 gunPivot을 3D 모델의 오른쪽 팔꿈치 위치로 이동
        gunPivot.position = playerAnimator.GetIKHintPosition(AvatarIKHint.RightElbow);

        // IK를 사용하여 왼손의 위치와 회전을 총의 왼쪽 손잡이에 맞춤
        playerAnimator.SetIKPositionWeight(AvatarIKGoal.LeftHand, 1.0f);
        playerAnimator.SetIKRotationWeight(AvatarIKGoal.LeftHand, 1.0f);

        playerAnimator.SetIKPosition(AvatarIKGoal.LeftHand, leftHandMount.position);
        playerAnimator.SetIKRotation(AvatarIKGoal.LeftHand, leftHandMount.rotation);

        // IK를 사용하여 오른손의 위치와 회전을 총의 오른쪽 손잡이에 맞춤
        playerAnimator.SetIKPositionWeight(AvatarIKGoal.RightHand, 1.0f);
        playerAnimator.SetIKRotationWeight(AvatarIKGoal.RightHand, 1.0f);

        playerAnimator.SetIKPosition(AvatarIKGoal.RightHand, rightHandMount.position);
        playerAnimator.SetIKRotation(AvatarIKGoal.RightHand, rightHandMount.rotation);

    }

손(자식)이 움직이고 팔(부모)이 따라가는가, 머리(부모)가 움직이고 머리카락(자식)이 따라가는가
자식 조인트가 부모 조인트를 움직이는가 부모 조인트가 자식 조인트를  움직이는가


public Action onDeath;는 사실상 하나의 이벤트(이벤트 컨테이너)이고 여기에 이벤트 리스너를 등록해주는 것이 += 연산자 뒤에 함수명을 쓰면 되는 것이다. 이는 사실상 이벤트 이므로 이벤트리스너를 다른 외부 스크립트에서 추가하지 않기를 원한다면 event 키워드로 보안을 강화할 수 있다.

 

Comments