Unity(유니티) - Start(), Update(), Awake()

Posted by ITPangPang
2017. 2. 20. 22:20 Unity/2D(Android) Study






Unity(유니티)

Start(), Update(), Awake()






Start(), Update(), Awake()

이 3가지 메서드는

Script 실행시 자동으로

호출되는 메서드 들이다.


기본적으로 C#스크립트를

만들고 편집기로 들어가보면


Start(), Update() 이 두가지는

자동생성 되어있다.


Awake()는 자동생성되지는 않지만

위 두가지 메서드와 마찬가지로

자주 쓰이고 중요한 메서드이다.



호출(실행)순서


Script가 실행될 때

(보통 게임시작 버튼 누를때)


실행되는 순서는

Awake() -> Start() -> Update()

순이다.


확인하는 방법은 쉽다.


Log를 찍어보자.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class LogTest : MonoBehaviour               
{
    // Use this for initialization
    void Start ()
    {
        Debug.Log("Start");
    }
    
    // Update is called once per frame
    void Update ()
    {
        Debug.Log("Update");
    }
 
    void Awake()
    {
        Debug.Log("Awake");
    }
}
cs


C#스크립트를 하나 생성해서

이렇게 작성한다.


그리고

MainCamera 정도에 스크립트를

추가한후에 Play를 시켜본다.


Console창을 보자.


위에서 말했듯이

Awake() -> Start() -> Update()

순으로 호출된다.


자세히보면 

Awake()나 Start()는

한번씩 호출되는데


Update()는 엄청나게

많이 호출되는 것을 확인할 수 있다.


그림 우측 상단을 보면

알겠지만 230개가 쌓여있다.


Update()


Update() 메서드가

위에처럼 엄청 많이

호출되는 이유는


이 메서드는

매 프레임마다

호출되는 메서드이다.


이 말은 PC나

모바일 성능에도 영향을

미친다.


예를 들어

동영상 같은 경우

60프레임 100프레임

이런말이 있을 것이다.


이 말은 1초

60번, 100번의

화면이 눈깜짝할 사이에

변경된다는 의미이다.


FPS라고 한다

(Frame Per Second)


어쨌든

이러한 메서드이기 때문에


Update()는 실시간 무언가를

체크하기 아주 적합한

메서드이다.


유저가 터치를 한다던가,

마우스 클릭을 한다던가,

드래그를 한다던가 등등


모든 순간순간의 동작을

다 캐치 할 수 있다.


Awake(), Start()


이 둘의 차이점중

가장 중요한 부분은


아마 생성자이냐

아니냐 차이일 것이다.


Awake()는 생성자이고

Start()는 생성자가 아니다.


오브젝트에 스크립트를

연결해 보면 알 겠지만


스크립트는 키고 끌 수 있다.


하지만,

Awake()는 이와 상관없이

최초 무조건 1회는 호출되기

때문에, 여기서 보통

모든 초기화를 진행시켜 주면 된다.


Start()는 Update() 메서드가

호출되기 바로직전에 호출된다.


모든 초기화가 Awake()에서

이루어지는 것은 아니다.


상황에 따라서 Start()메서드에서

초기화 하는 경우도 있다.

'Unity > 2D(Android) Study' 카테고리의 다른 글

Unity(유니티) - 씬 전환  (2) 2017.02.21
Unity(유니티) - Text Mesh  (0) 2017.02.20
Unity(유니티) Android 로그 확인  (0) 2017.02.19
Unity 2D 기본셋팅 테스트  (0) 2017.02.19
Unity(유니티) 안드로이드 빌드하기  (0) 2017.02.19