2023. 8. 3. 22:54ㆍ프로그래밍
유니티 프로젝트에서
Create C# Script를 만들어서 들어가 보시면
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class sample : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
|
cs |
이런 코드들이 기본적으로 작성되어 나옵니다
void Start()와 void Update()에 대해 알아봅시다
먼저 Start Update 앞에 붙여진 void는 void함수라 부르며 돌려줄(return) 값이 없는 함수를 칭합니다
즉 다시 말해서 어떤 값을 리턴하는 게 아닌 소리를 내 거나 메시지를 보내거나 행동을 취하게 하는 함수라는 것입니다.
1. void Start() 함수
다시 돌아와서 Start()가 뭔지 말해보자면
void Start() 함수 위에 보시면
//Start is called before the first frame update
라는 주석이 달려있습니다
해석해보자면 첫 프레임 업데이트 전 불러오는(실행하는) 함수라는 뜻입니다
즉 처음 실행할 때 최초 한 번 실행하는 함수입니다. 예제로
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class sample : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log("안녕하세요");
}
// Update is called once per frame
void Update()
{
}
}
|
cs |
void Start() 함수에 유니티 콘솔에 안녕하세요를 출력하는 코드를 넣어봅시다
그리고 실행하면
이렇게 최초 한 번 안녕하세요가 실행되는 모습을 보실 수 있습니다.
2. void Update() 함수
이 함수 앞에도 마찬가지로
// Update is called once per frame
라는 주석이 쓰여있습니다
해석해보자면 한 프레임마다 불러오는(실행하는) 함수라는 뜻입니다
말 그대로 컴퓨터가 실행하는 한 프레임마다 함수를 실행한다는 것입니다
(프레임:fps Frames per second의 약자로 정지된 사진 하나를 프레임이라 하면
이것을 연속적으로 보여줘 영상처럼 만드는 것으로 fps(프레임)이 올라가면 갈수록
부드러워진다)
그럼 이제 이 Update() 함수가 어떤식으로 실행되는지 코드를 작성하고 실행해봅시다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class sample : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
Debug.Log("안녕하세요");
}
}
|
cs |
안녕하세요 실행코드를 Update()함수 안으로 이동시켰습니다. 실행해보면
이렇게 매 프레임마다 안녕하세요를 실행하는게 보입니다
이런 식으로 보이시는 분은 Collapse 기능을 헤제하시면 위처럼 숫자가 늘어나는 형식이 아닌
나열되는 형식으로 보입니다
여기서 주의하셔야할점은 Update 함수는 매 초마다 실행하는 함수가 아닌 매 프레임마다
실행하는 함수로 개인의 컴퓨터 성능에 따라 초당 실행하는 횟수가 다릅니다 만약 매 초당
실행하는 함수를 쓰시고싶으면 Time.deltaTime을 쓰시면 됩니다
3. Awake 함수
더해서 Awake 함수는 start 와 비슷하지만
start 함수가 호출되기 전에 먼저 호출된다는 점에서 어떤 변수 또는 값을 초기화할 때
주로 이용합니다 예제로
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class sample : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
Debug.Log("안녕하세요");
}
// Update is called once per frame
void Awake()
{
Debug.Log("안녕하세요 Awake");
}
}
|
cs |
위처럼 수정한 후 실행해보면
start 함수가 Awake 위에 있음에도 불구하고 Awake 함수가 먼저 호출(실행) 되는 것을 확인할 수 있습니다
'프로그래밍' 카테고리의 다른 글
<유니티,C#> if 문 else, else if 조건문 + 연산자 (0) | 2023.08.02 |
---|---|
<유니티,C#> 변수의 종류와 사용 (1) | 2023.08.02 |
<유니티,C#> 반복문 for,while (0) | 2023.08.01 |
<유니티,C# 기초> 함수 (1) | 2023.07.31 |
<유니티> 플레이어 움직이기 (상하좌우) (0) | 2023.07.30 |