카테고리 없음
[Unity] 최적화
촙촙쓰
2020. 8. 28. 12:18
1. 빌드할때는 Debug.log 를 없앤다. 성능을 꽤 잡아먹는다 하는데 로그를 다 지울수는 없으니 에디터에서만 로그를 띄우도록 DebugX 를 사용하자.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Diagnostics;
using System;
public class DebugX : MonoBehaviour
{
public static bool isDebugBuild
{
get { return UnityEngine.Debug.isDebugBuild; }
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void Log(object message)
{
UnityEngine.Debug.Log(message);
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void Log(object message, UnityEngine.Object context)
{
UnityEngine.Debug.Log(message, context);
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void LogError(object message)
{
UnityEngine.Debug.LogError(message);
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void LogError(object message, UnityEngine.Object context)
{
UnityEngine.Debug.LogError(message, context);
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void LogWarning(object message)
{
UnityEngine.Debug.LogWarning(message.ToString());
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void LogWarning(object message, UnityEngine.Object context)
{
UnityEngine.Debug.LogWarning(message.ToString(), context);
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void DrawLine(Vector3 start, Vector3 end, Color color = default(Color), float duration = 0.0f, bool depthTest = true)
{
UnityEngine.Debug.DrawLine(start, end, color, duration, depthTest);
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void DrawRay(Vector3 start, Vector3 dir, Color color = default(Color), float duration = 0.0f, bool depthTest = true)
{
UnityEngine.Debug.DrawRay(start, dir, color, duration, depthTest);
}
[System.Diagnostics.Conditional("UNITY_EDITOR")]
public static void Assert(bool condition)
{
if (!condition) throw new Exception();
}
}
|
cs |
사용할때
1
2
3
4
5
6
7
8
9
|
public class Test
{
public void TestFunc()
{
DebugX.Log("wirte log here");
}
}
|
cs |
2. Foreach 구문말고 For을 사용하자
3. GetComponent를 쓰지말고 캐싱해서 쓰자
4. 오브젝트 관리는 오브젝트 풀을 사용하자 instantiate 와 Destroy는 메모리를 많이잡아먹는다
5 문자열 이어붙여야 할 땐 String builder 를 쓰자 ( System.Text)
6 나누기 10 말고 곱하기 .1