TIL

2024/1/26 TIL

jhwoo1221 2024. 1. 26. 21:28

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습
스탠다드 세션 - 클래스 복습
값 - 스택
참조 - 힙
버츄얼(가상화)(친절하다) - 자식이 그 메서드를 오버라이드 했을 시 자식 메서드 우선 실행, 아닐 경우 부모 메서드 실행
앱스트랙트(추상화)(불친절하다) - 자식이 그 메서드를 오버라이드 안했을 시 에러. 반드시 오버라이드 해야함
인터페이스 - 추가 파츠 / 크롬 확장프로그램 같은 느낌

 

                                  -콜라이더 관련 정보-

BoxCollider2D:사각형의 스프라이트일 때
CircleCollider2D:원형의 스프라이트일 때
PolygonCollider2D:다각형의 스프라이트일 때
edgeCollider2D:선으로 배경에 충돌을 만들 때 사용한다.

edgeCollider2D는 다른 Collider2D요소와는 조금 다른데,
edgeCollider2D끼리 충돌은 안되며

선의 형태이기 때문에 주로 울타리의 역할로 다른 Collider2D요소와 충돌하도록한다.


                                -BoxCollider2D요소의 내부 속성들-.
Material: 유니티에셋을 추가해서 충돌시 탄성(Bounciness) 마찰력(Friction)을 설정합니다. 공을 튕길때 탄성력이 크면 더 높이 튕기고 마찰력이 크면 공이 미끄러질때는 마찰력으로 인해 천천히 미끄러집니다.

Is Trigger: 해당 물체가 다른 물체와 충돌 여부를 선택하는 속성입니다. 

(True:충돌을 안한다. False:충돌을 안한다.)


Used By Effector:이펙터를 사용여부
Offset: 현재위치를 기준으로 충돌 경계선의 위치를 x,y축을 기준으로 변경합니다.
Size:충돌 경계선의 크기를 해당 스프라이트을 원점으로 x,y축 조절합니다.

콜라이더 내부함수들


void OnTriggerEnter2D(Collider2D coll)
트리거 체크된 오브젝트와의 충돌을 체크함.

 

void OnCollisionEnter2D(Collision2D coll)
물리적 충돌진입 시 발동

 

void OnCollisionExit2D(Collision2D coll)
충돌이 종료될 때 발동


Void CollisionStay(Collision2D coll)
계속 충돌 판정 체크하면서 발동

Is Trigger 설정에 체크하지 않을 경우, 충돌 시 접촉에 의한 물리 시뮬레이션이 발생하며
Is Trigger 설정에 체크할 경우, 충돌 시 부딪히지 않고 ‘겹침 상태’만 검사하게 된다.

스크립트로 콜라이더 추가하는 법
CircleCollider2D circleCollider = gameObject.AddComponent<CircleCollider2D>();

 

스크립터로 콜라이더 제거하는 법
circleCollider = GetComponent<CircleCollider2D>();
            if (circleCollider != null)
            {
                // Circle Collider 2D를 삭제.
                Destroy(circleCollider);
            }


'오늘의 나는 무엇을 잘했는지' - 성취

(커밋 로그와 영상으로 대체함)

-플레이어 실드 획득 시 운석 피해 1회 면역 및 스프라이트 변경 기능 구현

-플레이어 운석 충돌 시 Hp 15 감소함

-플레이어에 잔상 이펙트 추가

-지구의 모양이 일정 주기로 변경됨

-지구의 크기가 랜덤하게 커졌다 작아지길 반복함

-지구의 회전 속도가 시간이 지날 수록 빨라짐

 

'오늘의 나는 어떤 문제를 겪었는지, 앞으로 어떻게 해결할 것인지' - 개선
겪은 문제-

플레이어에 잔상 이펙트를 추가하던 중 메테리얼 없이는 디펄트 핑크색 사각형만 나온다는 사실을 알게됨

→한참 헤메다가 메테리얼 추가함

 

지구의 모양을 변경하는 과정에서 콜라이더를 CircleCollider2D circleCollider = gameObject.AddComponent< CircleCollider2D>(); 형식으로 추가하지 않고 외부에서 콜라이더를 등록해서 가져오려다 실패하고 헤메다가 AddComponent를 사용하여 콜라이더를 추가하고 원하는 기능을 구현함

'TIL' 카테고리의 다른 글

2024/1/30 TIL  (0) 2024.01.30
2024/1/29 TIL  (0) 2024.01.29
2024/1/25 TIL  (0) 2024.01.25
2024/1/24 TIL  (1) 2024.01.24
2024/1/23 TIL  (0) 2024.01.23