차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
unity:executionorder [2022/01/02 14:55] 61.74.132.138unity:executionorder [2022/01/02 15:29] (현재) – [실행 순서 (Execution Order)] 61.74.132.138
줄 1: 줄 1:
 {{tag>유니티 unity 코루틴 협동동루틴}} {{tag>유니티 unity 코루틴 협동동루틴}}
-======Execution Order====== +======실행 순서 (Execution Order)====== 
-Unity 스크립팅에서 스크립트가 실행되는 것처럼 미리 정해진 순서대로 실행되는 많은 이벤트 함수가 있다. 이 실행 순서는 아래에서 설명된다:+Unity 스크립팅에서 스크립트는 미리 정해진 순서대로 실행다.
  
  
줄 15: 줄 15:
 사용자가 게임 로직과 상호 작용, 애니메이션, 카메라 위치 등을 계속 트랙할 때 사용자가 사용할 수 있는 몇 가지 다른 이벤트가 있다. 공통적인 패턴은 //Update()//함수에서 대부분의 태스크를 실행한다는 것임. 그러나 사용자가 사용할 수 있는 다른 함수들도 있다. 사용자가 게임 로직과 상호 작용, 애니메이션, 카메라 위치 등을 계속 트랙할 때 사용자가 사용할 수 있는 몇 가지 다른 이벤트가 있다. 공통적인 패턴은 //Update()//함수에서 대부분의 태스크를 실행한다는 것임. 그러나 사용자가 사용할 수 있는 다른 함수들도 있다.
  
-  * __FixedUpdate:__ //FixedUpdate()//은 //Update()//보다 더 자주 불려진다. 프레임 레이트가 낮으면 프레임마다 여러번 불려질 수 있고 프레임 레이트가 높다면 프레임 사이에서 한 번도 불려지지 않을 지도 모릅니다. 모든 물리적인 계산과 업데이트는 //FixedUpdate()// 이후에 직접적으로 일어난다. //FixedUpdate()// 내부로 움직임 계산이 적용될 때, 사용자는 //Time.deltaTime//에 의하여 사용자의 값을 곱할 필요가 없다. 이것은//FixedUpdate()//가 신뢰있는 타이머에서 불려지고 프레임 레이트에 독립적이기 때문임. 
  
-  * __Update:__ //Update()//는 프레임마다 한 번 불려진다. 그것은 프레임 업데이트를 위한 주요 함수 임.+  * __Update:__ //Update()//는 프레임마다 한 번 불려진다. 그것은 프레임 업데이트를 위한 주요 함수 임. 스크립트가 enabled 상태일때, 매 프레임마다 호출됩니다. 일반적으로 가장 빈번하게 사용되는 함수이며, 물리 효과가 적용되지 않은 오브젝트의 움직임이나 단순한 타이머, 키 입력을 받을 때 사용됩니다.
  
-  * __LateUpdate:__ //LateUpdate()//는 //Update()//가 끝난 후에 프레임마다 한 번 불려진다. //Update()//에서 수행되는 모든 계산은 //LateUpdate()//이 시작할 때 끝날 것임. //LateUpdate()//를 위한 공통적인 사용은 다음의 3인칭 카메라일 것임. 사용자가 사용자의 캐릭터를 움직이고 //Update()// 내부에서 돌게 한다면 사용자는 모든 카메라 움직임과 회전 계산을//LateUpdate()//에서 수행할 수 있다. 이것은 캐릭터가 카메라가 그것의 위치를 트랙하기 전에 완전히 움직인다는 것을 확실시 할 것임. 
  
 +  * __FixedUpdate:__ //FixedUpdate()//은 //Update()//보다 더 자주 불려진다. 프레임 레이트가 낮으면 프레임마다 여러번 불려질 수 있고 프레임 레이트가 높다면 프레임 사이에서 한 번도 불려지지 않을 지도 모릅니다. 모든 물리적인 계산과 업데이트는 //FixedUpdate()// 이후에 직접적으로 일어난다. //FixedUpdate()// 내부로 움직임 계산이 적용될 때, 사용자는 //Time.deltaTime//에 의하여 사용자의 값을 곱할 필요가 없다. 이것은//FixedUpdate()//가 신뢰있는 타이머에서 불려지고 프레임 레이트에 독립적이기 때문임. (Update는 불규칙한 호출임으로 물리엔진 충돌검사 등이 제대로 안될 수 있음)
 +
 +  * __LateUpdate:__ //LateUpdate()//는 //Update()//가 끝난 후에 프레임마다 마지막으로 한 번 불려진다. //Update()//에서 수행되는 모든 계산은 //LateUpdate()//이 시작할 때 끝날 것임. //LateUpdate()//를 위한 공통적인 사용은 다음의 3인칭 카메라일 것임. 사용자가 사용자의 캐릭터를 움직이고 //Update()// 내부에서 돌게 한다면 사용자는 모든 카메라 움직임과 회전 계산을//LateUpdate()//에서 수행할 수 있다.  주로 오브젝트를 따라가게 설정한 카메라는 LateUpdate 를 사용합니다(카메라가 따라가는 오브젝트가 Update함수 안에서 움직일 경우가 있기 때문)
 =====Rendering===== =====Rendering=====
   * __OnPreCull:__ 카메라가 씬을 추려내기 전에 불려진다. Culling은 어떤 물체가 카메라에 보일지를 결정함. Culling일 일어나기 전에OnPreCull이 불려진다.   * __OnPreCull:__ 카메라가 씬을 추려내기 전에 불려진다. Culling은 어떤 물체가 카메라에 보일지를 결정함. Culling일 일어나기 전에OnPreCull이 불려진다.
줄 45: 줄 46:
   * __OnDisable:__ 이 함수는 행동이 비활성화될 때 불려진다.   * __OnDisable:__ 이 함수는 행동이 비활성화될 때 불려진다.
  
-====So in conclusion, this is the execution order for any given script:====+=====정리하면===== 
 +아래의 순서로 실행되가 된다. 
  
   * 모든 Awake calls    * 모든 Awake calls