강께르의 개발일지

[유니티] 20211004_수업 6일차 본문

카테고리 없음

[유니티] 20211004_수업 6일차

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

ScriptableObject를 이용해 많은 데이터를 담아 사용할 수 있는 또 하나의 데이터를 만들었다.

 

1. 마우스 매니저

1. 공격 대상이면, 커서 바꿔라

공격 대상을 판별하는 방법

RayCast의 결과로 hit 되는 Collider가 있을 것이다.

Collider의 게임오브젝트에서 Component를 갖고 오는데,

공격과 관련된 인터페이스 타입의 컴포넌트를 가져온다. 상속받으면 가져올 수 있다.

그 가져온 Component가 성공적으로 가져올 수 있어서 null이 아니라면

SetCursor로 커서 모양을 바꾼다.

2. 공격 대상을 좌클릭 하면, 공격 (유니티 이벤트 이용해서)

가져온 Componentnull이 아니라면

UnityEvent<> 데이터형으로 링크한 Hero 오브젝트의 메소드를 호출하는 방식으로

이벤트가 동작할 수 있게 코딩한다.

2. 히어로

1. AttackTarget 메소드

UnityEvent로 이 메소드가 호출됐다고 가정 하에 메소드를 작성한다.

타겟이 되는 오브젝트의 공격과 관련된 인터페이스 타입의 컴포넌트를 가져오고 ( 컴포넌트는 피격 시 피격 대상이 해야할 동작에 대한 구현이 되어있다.)

Hero 클래스가 가지고 있는 ScriptableObjectAttackDefinition에 정의된 CreateAttack()을 호출하여 공격자와 수비자의 데미지 계산을 한다.

그리고 데미지 계산을 한 결과로 Attack 인스턴스를 IAttackable 인터페이스를 상속 받은 타겟의 OnAttack을 호출하여 공격자 오브젝트와 Attack 인스턴스를 전달한다.

다시 재정의할 예정, 상속받은 모든 애들이 각자의 역할을 같은 이름 메소드로 동작하게 수정.

 

Dot 메소드를 이용해 내 앞방향이 맞는지 판단하여 애니메이션 출력

애니메이션 시점에 따른 데미지 적용 시점 적용

클릭 공격범위까지 이동 공격방향이 맞는지 판단 애니메이션 재생 OnAttack 호출

 

컴포넌트의 값을 점 세 개 버튼에 있는 Copy를 통해 일부 혹은 전체를 복사할 수 있다.

 

프리팹의 부모-자식 관계를 수정하려면 인스펙터의 open을 누르고 수정을 진행해야 한다.

 

부모 오브젝트의 자식 갯수를 아는 법 ChildCount

getChild로 자식을 갖고와서 Destory했다.

 

animationevent를 심을 수 있다.

event에 도달하면 그에 대한 반응을 전달할 수 있다.

애니메이션 창의 add event로 가능!

 

피봇점을 생각하고 애니메이션의 이상함을 생각해야한다.

뒤로 넘어지는 현상

바로 보는 피봇점이 어디인지 명확하게 파악할 필요가 있다.

 

rigidbody 컴포넌트

이 컴포넌트가 추가되면 물리 시뮬레이션에 영향을 받는다.

예 중력, 충돌

 

Collider 컴포넌트와 구별

충돌 검사하는데에 필요한 것

 

AddForce() 메소드
해당한 방향으로 물리 작용을 가한다.

예 점프 기능 추가