//출처는 골드메탈님 강의입니다!
3.5프로젝트에서 오늘 한거까지 참고! 하면서 진행해보자.
플레이어가 무게에 접근했다라는것을 알기 위해서 OnTrigger계열을 사용하자.
gameobject vs GameObject 차이
gameobject : 스크립트 컴포넌트가 포함된 오브젝트 자기 자신
GameObject : 클래스
to do : 무기 접근 후 'e'키 누른 경우 무기 착용시키기
OntriggerStay를 사용하자.
OntriggerExit도 사용함. : 해머 접근 후 획득 안한 상태에서 e키를 누르면 장착이 가능해지므로 접근 후 근처 벗어나면 해제하도록 만듬.
이전 시간에 만든 태그를 이요해 어떤 종류인지를 확인



무기 장착
장착할 위치에 맞는 본을 정하자.
해당 오브젝트에 실린더를 만들어주고 위치와 스케일을 적당하게 변경함. 콜라이더는 필요 없으니 삭제하자.
1) 일단 잠금을 건다.
2) 시프트 선택

3) 드래그 해서 옮기기

짠!
입력키 1,2,3~ 번으로 사용할 것이므로 input manager에 추가함.
: 불변수가 하나씩 필요하다.
=> inputmanager에 키값 추가할때마다 불변수가 하나씩 필요하다는 것을
알수 있다.
swap함수 how 만들까 ?
//조건 추가 : 액션 모두 중지한 상태 + swap키 누른여부 모두 체크
오른쪽 손에 비활성화시킨 무기를 활성화해야 하므롤 SetActive함수 사용함.
1,2,3번 버튼다운에 따른 값을 얻어와서 인덱스 값 설정함.

플레이어와 물체 충돌 중에 알게 된 점...
: 무기와 플레이어 충돌 시 플레이어가 y축으로 회전하는 문제가 발생햇다.
Freeze Rotation의 y축도 체크하도록 하자.
//0309 이거 추가하면서 무기 접촉 후 점프 못하게된다.
//추후에 코루틴? 배우고 하고 싶은거 적용해보자!
//내가 추가함. - 무기는 그냥 지나치게함.
//if(collision.gameObject.tag == "Weapon")
// rigid.constraints = RigidbodyConstraints.Fre
void Swap()
{
int index = -1;
if (sDown1) index = 0;
if (sDown2) index = 1;
if((sDown1 || sDown2) && !isDodge && !isJump)
{
//빈손일 때를 대비해 예외처리함.
if (equipWeapon != null)
equipWeapon.SetActive(false);
weapons[index].SetActive(true);
equipWeapon = weapons[index];
}
}
Swap하는 애니메이션 추가
: Player 애니메이터에 Swap 애니메이션 추가 및 트리거도 추가하고,
make transition으로 설정하자.
애니메이션 동작 진행 및 무기교체 진행 중이다라는 것을 알기 위한 불변수 추가함
+Invoke 함수 호출함. + 다른 동작의 함수 Jump, Move등에 조건 추가하자.
무기 중복 교체 및 획득 안했는데도 장착이 가능한 상황에 대한 인터락 추가.
망치를 0으로 했으므로 초기값 -1로 해야한다.