내일배움캠프 28일차 5/24 TIL + Unity공부
코딩 팁
클래스에서 필드를 선언할 때 [Header(“Name”)] 이라고 치고 필드를 치면 해당 필드에 연관된 변수끼리 묶여 필드에 변수들을 구분하기 쉽다.
객체 지향 복습
단일 책임 원칙
플레이어를 만들 때 팔 다리, 몸통까지 모두 잘라서 나눠두고 플레이어는 어떤 행동을 언제쓸지만 판단하는 뇌만 남겨둔다
예를 들어 플레이어의 이동, 공격, 애니메이션 동작까지 전부 따로 스크립트를 만들어두고 플레이어는 이를 불러오기만 한다
개방 폐쇄 원칙
부모 자식 관계일 때 자식을 다양하게 계속 추가할 경우 어떻게 하면 기존 코드를 수정안하면서 새로운 자식을 추가할까?
모든 자식이 중복으로 사용하는 내용도 똑같은 메소드는 부모클래스에서 만들고, 나머지는 전부 abstract로 선언만 해둔다.
그러면 부모는 수정할 필요가 없고 확장은 마음껏 할 수 있다.
리스코프 치환 원칙
자식은 부모의 메소드와 변수가 모두 적용되어야한다.
근데 “새” 라는 부모 밑에 여러가지 새를 넣을라는데, 새는 모두 날 수 있겠지만 못나는 새인 펭귄, 타조 같은 애들은?
새 밑에 나는새, 못나는새 클래스 2개를 자식으로 먼저 만든다
인터페이스 분리 원칙
이러다보면 모든 기능은 인터페이스로 분리하고 클래스는 거의 비워두려고 할 수 있다.
이 때 인터페이스도 각 기능별로 나눠서 만들어야한다.
의존성 역전 원칙 (Dependency inversion principle) DIP
스위치를 만들었는데 이걸 어떤때는 문여는 스위치, 어떤 때는 빛 켜는 스위치로 만들고 싶다.
이럴 때는 스위치는 어떤 interface를 가진 애들을 동작 시킬지만 정하고
동작하는 일은 interface로 만들어서 관리 받는 애들이 세부적인 일은 interface를 상속 받아서 알아서 동작한다.
이러면 매번 새로운 스위치를 만들 필요 없이 문이랑 빛만 알아서 동작하게 만들면 된다.
관리자가 통제는 하지만 실제 일은 관리 당하는 주체가 동작하게 한다.
FixedUpdate
매 0.02초마다 불리고 이는 유니티에서 설정하여 조정 가능하다.
이렇게 초마다 불리기에 여기서 물리현상을 해결하는 것이 좋다.
Update는 프레임마다 불리고 그렇기에 불규칙적이며 cpu가 과부하가 걸리면 늦게 불려지거나 할 수도 있다.