[SKKU DT] 74일차 -C#, 유니티 팁 정리

2024. 2. 19. 18:56SKKU DT

728x90
반응형

시작은 무조건 Data.

Data - Control - Viewer의 조합

 

Data에 대한 개념을 이해해야 한다.

 

구글 스프레드 시트의 데이터를 tsv 형식으로 받아와서 교통 시뮬레이션을 만들어서 사고가 났다면 교차로의 모든 신호등을 빨간색으로 바꿔서 차단하도록 만들어볼 것이다.

 

데이터를 기반으로 컨트롤하는 방식이다.


 

 

유니티 2021.3.27f1 설치

뒤에 프로젝트를 위해서 설치.

 


 

 

여러 팁들

*meta 파일에는 2048x2048, Mipmap 체크 등 텍스쳐라면 텍스쳐의 Inspector 정보가 들어있다. guid는 텍스쳐가 유니티에 들어갈 때 유니티에서 부여한다.

 

 

**Asset Hunter (유료)

https://assetstore.unity.com/packages/tools/utilities/asset-hunter-pro-135296

 

Asset Hunter PRO | 유틸리티 도구 | Unity Asset Store

Use the Asset Hunter PRO from HeurekaGames on your next project. Find this utility tool & more on the Unity Asset Store.

assetstore.unity.com

위의 기능을 설치하면 이미지가 어디어디에 쓰였는지 쉽게 알 수 있다.

 

 

***Addressable, Asset Bundle로 패치를 관리한다.

 

 

Jenkins, 프로파일링, unit test(Test Case) 수업 할 예정

 

 

Flags

[Flags]로 되어있는 것들은 연산이 된다.

enum에 Flags는 나중에 많이 쓴다.

 

 

ref와 out의 차이

ref는 전달하는 매개변수가 변경되지 않아도 상관없고

out은 변경되는 상황에서 쓰인다.

 

 

UniRx

https://c1oud9.tistory.com/306

 

[Unity/UniRx] UniRx의 간단한 샘플 - 1. UniRx와 Subscribe

UniRx? Reactive Extensions C#용 비동기 처리를 위한 라이브러리 디자인 패턴 중 하나인 Observer 패턴을 기반으로 설계되어 있음 시간에 관한 처리, 실행 타이밍이 중요한 곳에서 쉽게 작성할 수 있도록

c1oud9.tistory.com

 

 

문자열 trim

 

 

Split

 

 


 

 

싱글턴

씬이 바뀌어도 싱글턴이 있으면 Hierarchy가 안날아가고 남아있다.

https://www.yes24.com/Product/Goods/17525598

 

GoF의 디자인 패턴 - 예스24

이 책은 디자인 패턴을 다룬 이론서로 디자인 패턴의 기초적이고 전반적인 내용을 학습할 수 있다.

www.yes24.com

https://www.yes24.com/Product/Goods/11681152

 

Clean Code 클린 코드 - 예스24

애자일 소프트웨어의 혁명적인 패러다임을 제시하는 책이다. 저자 로버트 마틴은 오브젝트 멘토(Object Mentor)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 정제

www.yes24.com

 

 

 

 

 

 

대리자(Delegate)

특정 함수를 재지정할 수 있다. 객체지향에 쓰임

 

함수에 함수를 더해서 로그인 한 번 하면 로그인+인증 메서드 같이 더할 수 있다.

 

 

좌 우의 출력 값이 같다.

 

 

Event

 

 

Delegate와 Event 차이

 

 

Action -UI에서 많이 쓰임

파라미터도 없고 리턴 값도 없다.

 

 

Anonymous Delegate

 

 

 

SFunc

 

 

 

 

 

Lambda

-실무에서는 간단한 람다만 쓰고 복잡한 람다는 잘 쓰지 않는다.

 

 


 

 

.Net Reflection

-실시간으로 여러 정보를 얻어낼 수 있다.

 

 


 

 

Heap과 Stack

데이터 크기를 잘 관리해야 StackOverFlow, HeapOverFlow가 발생하지 않는다.

 

 

List

 

 

Dictionary

 

 

Struct 구조체

 

 

프로퍼티

 

 

Value Type, Reference Type -그냥 외우기

value는 값 그대로 가고, 참조 타입은 주소로 참조된다. 직접 값이 복사 되는 것이 아니라 주소만 복사 된다.

 

 

확장 메소드 -정말 중요해! 실무에서 진짜 많이 쓰임!

IsGreaterThan은 내가 만든 것이다.

 

result 출력 값은 False가 나올 것이다.

using ExtensionMethods; 를 쓰면 IntExtensions를 가져다가 쓸 수 있다.

 

다른 확장 메서드의 예시

 

 

생성자

 

 

상속 관계

 

 


 

 

이벤트 순서 외우기

 

 


 

 

 

 

PlayerPrefs

-로컬에 플레이어 각자가 설정한 정보들을 저장하는 것. (게임에서 전체화면 설정 등)

 

 


 

 

OnInspectorGUI

내가 원하는 방식으로 Inspector를 편집할 수 있다.

 

 

 


 

 

객체지향

 

 

 

 


 

 

***Rider Unity는 유료지만 매우 좋다.

https://www.jetbrains.com/ko-kr/lp/dotnet-unity/

 

Rider. Cross-platform С# Editor for Unity

JetBrains is a cutting-edge software vendor specializing in the creation of intelligent development tools, including IntelliJ IDEA – the leading Java IDE, and the Kotlin programming language.

www.jetbrains.com

 

 


 

 

짐벌락

Euler 회전을 하면 특정 부분에서 회전이 겹쳐 이상하게 되는 부분이 있다. 여기서 유니티는 Quaternion을 사용하여 이를 방지한다.

 

 


 

 

UniTask / UniRx

https://assetstore.unity.com/packages/tools/integration/unirx-reactive-extensions-for-unity-17276

 

UniRx - Reactive Extensions for Unity | 기능 통합 | Unity Asset Store

Use the UniRx - Reactive Extensions for Unity from neuecc on your next project. Find this integration tool & more on the Unity Asset Store.

assetstore.unity.com

코루틴의 불편함을 덜고 코드를 훨씬 편하게 작성할 수 있다.

728x90
반응형