TIL

[TIL] 내일배움캠프_Unity 깃허브 특강

Hwone 2023. 9. 11. 22:15

오늘은 팀과제를 했지만 새로 배운 내용 보다는 로직 구현내용이 커서 깃허브 특강에 대해 메모한 부분을 추려서 적어보려 한다

 

깃허브 특강

협업할 때 git에 필요한 파일은 Assets Packages ProjectSettings 이 세가지만 있으면 된다

깃허브 만들 때 .gitignore 넣어서 만들기

  • Conflict
    • 원인
    • 같은 코드라인을 건들면 발생
    • 해결 방법
      • 각자 작업의 파트를 분리
      (각 UI별로 할일을 나누는 것도 좋은 방법)
    • 원인
    • 유니티에서 씬 파일은 수정하기 어렵다
    • 해결방안
      • 작업의 씬도 분리하자
      • 해당하는 씬에 필요한 기능과 UI끼리 나누면 된다
      • 씬 위에 오브젝트가 프리팹으로 올라가 있을 때 프리팹을 열어서 수정하면 씬은 수정된것으로 취급되지 않는다
      • 프리팹을 수정하여 프리팹을 올린다 하지만 프리팹도 충돌이 일어나면 고치기 힘드니까 소통을 통해 체크하고 진행하는게 좋다
      ( Unity 파일은 Scene 파일이다))
  • Commit
    • 커밋은 프로젝트 다 하고 한번에 올리는것 보다는 하나의 작업 단위로 올리는게 좋다
    • 명확한 이름으로 어떤 작업을 했는지 남겨두어 다른 사람들이 볼 때 어떤 작업에 어떤 코드를 작성하였는지 볼 수 있게 해야한다
    *유니티Tips*
    • Find() 함수 계열들은 선형탐색으로 시간복잡도 문제와 찾으려는 오브젝트의 이름이 변경되면 사용할 수 없으므로 사용하지 않는게 좋다
      • 해결방안
      public class MySingleton { // 유일한 인스턴스 private static MySingleton instance;}
    • // private 생성자로 외부에서 인스턴스를 생성하지 못하게 함 private MySingleton() { } // 싱글턴 인스턴스에 접근할 수 있는 프로퍼티 public static MySingleton Instance { get { // 인스턴스가 없으면 생성 if (instance == null) { instance = new MySingleton(); } return instance; } } // 싱글턴 클래스의 기타 메서드 및 멤버 변수
    • 안 쓰는 기능은 삭제하는 것이 좋다
    • GetComponent의 경우 성능면으로 무거운 작업으로 저장해 뒀다가 이용하면 좋다
    (이렇게 필요한 데이터를 한번 저장했다가 계속 활용하는 것을 캐싱이라고 한다 : 데이터 캐싱)
    • Awake는 데이터, Start는 객체관련 처리를 보통 한다
    • 객체에 접근하면 . 을 통해 각 객체가 가지고 있는 속성이나 기능을 활용할 수 있다 그래서 연결,연결해서 이루어 지는데 코드가 길어지면 분석하기 힘들고 계산 결과가 null 이라면 그 다음 연산을 진행하는데 문제가 생긴다 그래서 연쇄 호출은 피해야한다
    (객체를 저장하여 먼저 접근해서 null 체크 후 진행)
    • 코드를 작성하다보면 고정된 문자를 사용할 때가 있다 하지만 문자의 경우 오타가 날 수도 있기 때문에 필요한 경우마다 매번 입력하는건 비효율적이다 (” “) 그래서 상수로 만들어서 저장해두고 사용하는 것이 좋다 또한 상수를 가지고 있는 클래스를 따로 만들어서 사용하는 것도 좋은 방법이다