'포트폴리오' 카테고리의 다른 글
DIrectx9 포트폴리오 전체게임영상 (0) | 2016.11.02 |
---|---|
Directx9 포트폴리오 개인파트 입니다. (0) | 2016.10.30 |
Winsdows API 2D 최종 포트폴리오. (1) | 2016.07.21 |
Windows API 팀 프로젝트 박스헤드 (0) | 2016.06.24 |
Windows API 1주일 포트폴리오. (3) | 2016.04.15 |
DIrectx9 포트폴리오 전체게임영상 (0) | 2016.11.02 |
---|---|
Directx9 포트폴리오 개인파트 입니다. (0) | 2016.10.30 |
Winsdows API 2D 최종 포트폴리오. (1) | 2016.07.21 |
Windows API 팀 프로젝트 박스헤드 (0) | 2016.06.24 |
Windows API 1주일 포트폴리오. (3) | 2016.04.15 |
출처 : 유니티 메뉴얼 : https://docs.unity3d.com/kr/current/Manual/ExecutionOrder.html
다음 그림은 스크립트의 유효기간 동안 이벤트 함수의 순서와 반복 처리를 정리 한 것입니다.
자주 사용되는 함수 정리
Awake() : 스크립트가 실행될 때 딱 한번만 호출됨. Start함수가 호출되기 전에 먼저 실행되고.
스크립트가 비활성화돼 있어도 실행된다고 함. 코루틴으로는 실행 불가능.
Start() : Update() 함수 호출전에 딱 한번만 호출된다. Awake()와 다른점은 스크립트가 활성화 되어있어야 호출된다는 점.
다른스크립트의 Awake()가 모두 호출된 후에 실행된다. 코루틴으로 실행 가능하다.
Update() : 매 프레임 마다 호출되는 함수로 주로 게임의 핵심 로직을 여기에 작성한다. 스크립트가 활성화 되어 있어야 실행된다.
LateUpdate() : 모든 Update()함수가 호출되고 나서 한 번씩 호출된다. 순차적으로 실행하는 로직에 사용하면 좋고, 카메라 이동 로직에 주로 사용된다고
한다. 마찬가지로 스크립트가 활성화돼 있어야 실행이 된다.
FixedUpdate(): 이 함수는 Update()보다 자주 호출되는 경우가 많다. 프레임 속도가 낮은 경우에는 프레임마다 여러번 호출 될 수도 있다.
그러나 프레임 속도가 높은 경우에는 프레임간에 호출 될 수는 없다. 모든 물리적 특성 계산 및 업데이트는 FixedUpdate() 이후에 발생한다.
그리고 이 함수 내에서는 Time.deltaTime 값을 곱할 필요가 없는데 왜냐하면 프레임 속도와 독립적으로 FixedUpdate()만의 신뢰 할 수 있는 타이머에서 호출되기 때문이라고 한다. 타이머에 따라서 발생하는 주기가 일정하다.
(Edit -> Project setting -> Time 메뉴에 들어가면 발생 주기를 직접 입력 할 수 있다.)
OnEnable() : 게임 오브젝트 또는 스크립트가 활성화됐을 때 호출된다. 코루틴으로는 실행이 불가능.
OnDisable() : 게임 오브젝트 또는 스크립트가 비활성화됐을 때 호출된다. 코루틴으로는 실행이 불가능.
*주의 : 오타를 잡아주지 못하기 때문에 스펠링을 정확하게 써야 원하는 방향으로 작동한다.
유니티 비주얼스튜디오 ctrl + ' 단축키 설정법 (0) | 2017.03.14 |
---|---|
다이나믹 메시 (0) | 2017.01.04 |
이벤트 활용 (0) | 2016.11.11 |
Physics.OverlapSphere,Quaternion.Lerp (0) | 2016.11.10 |
Coroutine (0) | 2016.11.09 |
코루틴은 실행을 중지하여 Unity에 제어권을 돌려주고, 그러나 계속할 때는 다음 프레임에서 중지한 곳부터 실행을 계속할 수 있는 기능입니다. C#에서 코루틴은 다음과 같이 선언합니다:
IEnumerator Fade() {
for (float f = 1f; f >= 0; f -= 0.1f) {
Color c = renderer.material.color;
c.a = f;
renderer.material.color = c;
yield return null;
}
}
즉, 이것은 IEnumerator 형식을 반환값으로 가지며 yield return 구문을 어디엔가 포함하고 있는 함수입니다. yield return 행은 실행을 중지하고 다음 프레임에서 실행을 재개할 수 있는 지점입니다. 코루틴을 실행하려면 StartCoroutine 함수를 사용합니다. \n
void Update() {
if (Input.GetKeyDown("f")) {
StartCoroutine("Fade");
}
}
적이 많은 경우에 이 함수를 매 프레임 호출 하여 현저한 오버 헤드를 초래할 지도 모릅니다. 그러나 코루틴을 사용하여 1/10 초 간격으로 호출할 수 있습니다:
IEnumerator DoCheck() {
for(;;) {
ProximityCheck;
yield return new WaitForSeconds(.1f);
}
}
따라서 게임에 악영향을 주지 않고 체크 횟수를 비약적으로 감소시킬 수 있습니다.
StopAllCoroutines() 이라는 함수가 있는데
해당 클래스 내에서 진행되고 있는 코루틴 함수들을 전부 중지시킵니다.
보다 자세한 설명
http://unityindepth.tistory.com/21 여기에 잘 나와있습니다
그리고.. StartCoruotine(함수명()) 으로 실행한 코루틴은 StopCoroutine으로 멈출수 없다고 합니다.
함수명() 대신에 "함수명" 으로 실행해야 StopCoroutine("함수명") 으로 멈출수 있다고 하는데; 버그인지 뭔지는 알아봐야 할 것 같네요
유니티 비주얼스튜디오 ctrl + ' 단축키 설정법 (0) | 2017.03.14 |
---|---|
다이나믹 메시 (0) | 2017.01.04 |
이벤트 활용 (0) | 2016.11.11 |
유니티 기본 이벤트 함수 (0) | 2016.11.11 |
Physics.OverlapSphere,Quaternion.Lerp (0) | 2016.11.10 |