Unity Tip

김도익·2023년 5월 12일
0

Unity

목록 보기
22/23

  • C#으로 바꿔줍니다.

  • 새로운 파일을 만들고, Script를 만들고, 만든 Script를 object안에 넣어줍니다.

  • MonoBehaviour을 상속 받습니다.
    즉, 유니티 엔진을 상속 받는 다는 것인데, 무조건 MonoBehaviour를 상속 받아야만 사용이 가능한 것은 아닙니다. 하지만 유니티 컴포넌트를 사용하기 위해선 상속 받아야합니다.

컴포넌트 : 동작순서

주의사항 : 어떤 컴포넌트가 먼저 호출되는지는 명확하지 않습니다.
순서 보장이 되지 않습니다.
그래서 여기서 버그가 발생할 수 있습니다.

유니티 프레임워크를 알기 위해선 Events에 대해서 알아야합니다.

이벤트 함수가 어떻게 호출되는지 모른다면 개발자가 아닙니다.

게임은 그럴 듯하게 연출하는 것이다.

unity는 쉽게 배움이 가능해서 나만의 어필 방법이 필요하다.

  1. 확장성 있게 설계하는가?
  2. 구현을 빠르게 가능한가? (객체지향적 프로그래밍이 되는가?)
  3. 최적화 설계가 가능한가?

Debug

  • 실시간으로 움직이는 것을 C#에서 했던 방법대로 디버그 하는 방법은 어렵습니다. 그래서 Debug를 사용해서 만듭니다.



  • 노랑이는 주의 : 돌아가긴 하는데, 주의해줘
  • 빨강이는 에러 : 진짜 안돼

  • 안전한 코딩습관은 필수!

좌표계

월드 좌표계와 로컬 좌표계와 잘 분리해서 생각해야한다.

인스펙터 창에서 트랜스폼 컴포넌트에 보여지는 여러 값은 부모의 트랜스폼 값에 영향을 받습니다.
이를 지역 좌표(Local Coordinates)라 합니다.
월드 상에서의 실제 위치는 전역 좌표(Global Coordinates)라 합니다.

static은 성능 향상에 도움이된다.

정적인 것들은 모두 static 처리를 해야 성능 개선이 됩니다.

단, 회전하거나, 돌아가는 것 등 좌표가 움직여야 하는 것들은 정적이 아닙니다.

인터페이스 꾸미는 방법


플레이하는 동안 주변 색이 바뀌도록 만들어주는 방법

이렇게 만들어줌으로써 실행되고 있는지 아닌지를 판단할 수 있습니다.
꿀팁!

  • Awake는 참조관계를 연결할 때 사용합니다.
    Awake가 명확하게 언제 실행되는지 알아야합니다. 그래야 버그를 줄일 수 있습니다.

  • OnEnable : 활성화 되어 있을 때만 호출된다. 활성화 될 때마다 호출됩니다.

Translate - 최적화

교수님 접근 방법

컴포넌트 하나 만들때 마다 실험을 해보았습니다.
빠르게 실험을 해보고 어디서 틀렸는지 빠르게 알아야합니다.
작게 만들고 작게 테스트를 해봐야합니다.
크게 만들고 크게 테스트 했을 때 버그가 발생하면 어디서 터졌는지 알아차리기 힘듭니다.

함께 작업하면 만든 기능을 프리팹으로 전달해줍니다.
그리고 작업이 완성되서 합칠 때는 코드를 깔끔하게 정리하고 가독성을 높여줘야합니다.

주의 사항

아래 내용 삭제하면 버그 발생할 수 있음. 주의 요망.

이벤트 주의 사항 : 어떤 컴포넌트가 먼저 호출되는지는 명확하지 않다. 순서 보장이 되지 않아 버그가 발생할 수 있다.

오브젝트 풀링

Unity에서 만들어둔 객체가 사용이 끝났다고해서, 삭제하는 것은 좋지 않다. 만들어둔 객체를 재활용해야하기 때문이다. 그래야 메모리를 절약하면서 사용할 수 있다.

가비지 컬렉터 이해하자

가비지 컬렉터에 대한 이론과 동작 원리를 이해하면 유니티 최적화에 큰 도움이 된다.

API 매개변수 잘 확인하자.

각 API가 갖고 있는 매개변수가 어떤 것인지 제대로 확인하고 인수를 넣어주자.

AI를 구현하고 싶다면 물리쪽 API를 잘 사용하면 된다.

벡터

벡터 모르면 게임 구현 못한다. 벡터를 알아야한다.
이두구 게임 수학 공부하자.

카메라 연출

카메라 연출 관련해서 코드를 작성할 부분이 많다.
고려할 부분과 생각해야될 부분이 많다.
그래서 카메라를 연출할 때는 Unity에서 제공하는 시네머신을 사용하면 된다.

유니티 라이브러리 추천

DOTween은 많이 사용한다.

  • 아주 획기적인 친구! 검색해보자.

  • 사용법

사이게임즈는 C#과 Unity에 진심인 회사다. UniTask처럼 좋은 걸 많이 오픈소스로 공개해뒀다.
git에서 좋은 자료 많이 찾아보자

profile
고급 개발자가 되고 싶어요!

0개의 댓글