강께르의 개발일지

[유니티] 20211006_수업 8일차 본문

프로그래밍/유니티

[유니티] 20211006_수업 8일차

강께르 2021. 10. 6. 21:05

3d 모델링 다루기

모델링 파일의 rig 탭을 보면

Extra Transforms to Expose가 있다.

이 부분을 열면 모델링이 보여주지 않은 부분이 다 있을 것이다.

만약 씬상에서 위치를 가져오고 싶은 부위나 이용하고 픈 부위가 있다면

이 탭에서 원하는 부위를 체크해 씬 상에서 접근 가능하게 할 수 있다.

 

OnTrigger 시리즈

OnCollision 시리즈

위 메소드들은 FixedUpdate 메소드에서 호출된다.

 

위 메소드들의 매개변수인

Collision과 Collider의 차이점이 있다.

Collision은 충돌 시의 정보를 디테일하게 갖고 있는 클래스

Colllider는 흔히 알고 있는 그냥 충돌체이다.

 

위의 과정은 투사체를 캐릭터에서부터 발사하기 위한 과정인데

던져서 피격 처리하고 싶다면 OnTrigger 메소드를 사용한다.

투사체에 RigidBody와 Collider의 isTrigger를 활성화시켜 사용한다.

Collider의 Layer를 통해서 몬스터인지 아닌지 구별해 충돌 처리한다.

 

Project Setting - Physics를 보면 레이어 간의 물리 시뮬레이션 관계에 대한 정의를 해줄 수 있는 부분이 있다.

 

투사체를 던지면 다른 Collider에 부딪혀 소멸됨에도 불구하고 던지는 경우가 있다.

이 때, 먼저 RayCast로 판별하고 던질 수 있는 기능을 추가할 수 있다.

 

a에서부터 b의 방향을 구하는 것은 b - a로 벡터를 구하면 된다.

 

현재 몬스터는 이렇다

공격 상태일 때, RayCast의 결과로 공격할 수 없다고 판별나면 Trace로

추격 상태일 때, RayCast의 결과로 공격할 수 있다고 판별나면 Attack으로

추가됐다.

 

렉돌

몬스터가 죽은 이후 시체를 만들기 위해 렉돌이라는 것을 이용했다.

렉돌로 만들고픈 모델링을 선택하고 GameObject - Ragdoll을 클릭한다.

그럼 창이 하나 나오는데

이 창에 각 해당하는 모델링의 부위를 넣으면 Rigidbody가 적용이 된 상태로 렉돌이 하나 생성된다.

이 렉돌을 가지고 죽은 시체를 만들 수 있다.

 

몬스터가 만약 죽었다고 판별나면

몬스터를 Destroy하기 전, 렉돌을 생성하고 몇 초후에 Destory하는 방법으로 구현했다.