좋은 글이니 읽어 볼 것.
(출처 : GeekCoders 티스토리 블로그)
요약
1. 반복
for문으로 작성 가능한 경우 for.
아니라면 enumerator 사용. foreach는 사용을 최대한 줄이자.
1 2 3 4 | var enumerator = dic.GetEnumerator(); while(enumerator.MoveNext()) { string str = enumerator.Current.Value; } | cs |
( List나 Dictionary 등)
2. Parse
int -> string은 입맛대로
string -> int는 tryParse를 쓰자
1 2 3 4 | for(int i=0; i<Sample.LoopCount; i++) { int integer; int.TryParse(strs[i], out integer); } | cs |
3. callback
빈 delegate 작성하지말자.
소스코드의 안정성과 속도를 위해 무조건 null체크, null을 인자로 작성
1 2 3 4 5 6 | void Func(Action callback) { if(callback == null) { return; } callback(); } | cs |
4. transform Caching
transform에 자주 접근하는 객체는 caching이 필수.
1 2 3 4 | Transform transform; void Start() { transform = this.GetComponent<Transform>(); } | cs |
5. string compare
결과 : == > GetHashCode > Equals > CompareTo > Compare
여러가지 경험을 비추어봤을때 연산자의 사용은 권장하지 않음. Equals를 추천
1 | string.Equals(strs[i], Sample.CompareStr) | cs |
6. debug.log
로그 삭제는 선택이 아닌 필수
에디터에서만 보이고싶다면 아래처럼 작성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #if UNITY_EDITOR #define ENABLE_LOG #endif using UnityEngine; public static Class Debug { [System.Diagnostics.Conditional("ENABLE_LOG")] public static void Log(object message) { UnityEngine.Debug.Log(message); } [System.Diagnostics.Conditional("ENABLE_LOG")] public static void Log(object message, UnityEngine.Object context) { UnityEngine.Debug.Log(message, context); } } | cs |
'프로그래밍 공부 > Unity 팁' 카테고리의 다른 글
MVC(Model-View-Controller) 패턴. 유니티 커스텀 (0) | 2018.11.20 |
---|---|
두 벡터 사이의 각도 0~360도로 구하기 (2) | 2018.09.12 |
오브젝트풀링 편하게 하기 (0) | 2018.06.21 |
싱글톤 쉽게 만들기 (0) | 2018.06.21 |
유니티 모바일 게임 최적화 (0) | 2018.06.01 |