[Unity] 생λͺ… μ£ΌκΈ°(Life Cycle)

2021. 12. 12. 22:56Β·πŸ“ Game/✏ Unity

생λͺ… μ£ΌκΈ°(Life Cycle)

μœ λ‹ˆν‹° 슀크립트의 λŒ€λΆ€λΆ„μ€ Monobehaviour 클래슀λ₯Ό 상속받아 λ§Œλ“€μ–΄μ§„λ‹€. μ΄ 클래슀λ₯Ό 상속받은 μ˜€λΈŒμ νŠΈλŠ” Scene에 μžˆλŠ” λ™μ•ˆ μ—”μ§„μ—μ„œ μΌμ •ν•œ 흐름에 따라 μžλ™μœΌλ‘œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ”λ°, μ΄ νŒ¨ν„΄μ˜ 흐름을 생λͺ… μ£ΌκΈ°(Life Cycle)라 λΆ€λ₯Έλ‹€.

 

전체 흐름

전체적인 흐름은 μ•„λž˜ 곡식 μ‚¬μ΄νŠΈλ₯Ό 보면 λ˜λŠ”λ°, λ„ˆλ¬΄ λ³΅μž‘ν•˜κ³  λ§ŽμœΌλ‹ˆ 자주 μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜λ“€λ§Œ 정리할 것이닀.

 

https://docs.unity3d.com/kr/530/Manual/ExecutionOrder.html

 

μœ λ‹ˆν‹° - 맀뉴얼: 이벀트 ν•¨μˆ˜μ˜ μ‹€ν–‰ μˆœμ„œ

μžλ™ λ©”λͺ¨λ¦¬ 관리λ₯Ό μ΄ν•΄ν•˜κΈ° 이벀트 ν•¨μˆ˜μ˜ μ‹€ν–‰ μˆœμ„œ Unity μŠ€ν¬λ¦½νŒ…μ‹œ, 미리 μ •μ˜λœ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λ˜λŠ” λ§Žμ€ 이벀트 ν•¨μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜μ—μ„œλŠ”, μ‹€ν–‰ μˆœμ„œλ₯Ό μ„€λͺ…ν•©λ‹ˆλ‹€. 에디터 __ Reset : __

docs.unity3d.com

 

μ€‘μš” 흐름

 

Life Cycle

 

  1. Initialization
    • Awake
      • μŠ€ν¬λ¦½νŠΈκ°€ 싀행될 λ•Œ 1번만 ν˜ΈμΆœλœλ‹€.
      • μ˜€λΈŒμ νŠΈκ°€ λΉ„ν™œμ„±ν™”μΌ κ²½μš°μ—” ν˜ΈμΆœλ˜μ§€ μ•Šμ§€λ§Œ μŠ€ν¬λ¦½νŠΈκ°€ λΉ„ν™œμ„±ν™”μΌ κ²½μš°μ—” ν˜ΈμΆœλœλ‹€.
      • μƒμ„±μžμ²˜λŸΌ κ²Œμž„μ˜ μƒνƒœ λ˜λŠ” λ³€μˆ˜ μ΄ˆκΈ°ν™”λ‘œ μ‚¬μš©ν•œλ‹€.
      • 였브젝트의 μ΄ˆκΈ°ν™” λ˜λŠ” ν”„λ¦¬νŒΉμ˜ μΈμŠ€ν„΄μŠ€ν™”κ°€ λͺ¨λ‘ μ§„ν–‰λœ 직후에 호좜되기 λ•Œλ¬Έμ— Find ν•¨μˆ˜ 호좜의 μ•ˆμ •μ„±μ„ 보μž₯ν•œλ‹€.
      • μ½”λ£¨ν‹΄μœΌλ‘œ μ‹€ν–‰ν•  수 μ—†λ‹€.
    • OnEnable
      • 였브젝트 λ˜λŠ” μŠ€ν¬λ¦½νŠΈκ°€ ν™œμ„±ν™”λ  λ•Œλ§ˆλ‹€ ν˜ΈμΆœλœλ‹€.
      • 이벀트 μ—°κ²° μ‹œ μ‚¬μš©ν•œλ‹€.
      • μ½”λ£¨ν‹΄μœΌλ‘œ μ‹€ν–‰ν•  수 μ—†λ‹€.
    • Start
      • μŠ€ν¬λ¦½νŠΈκ°€ ν™œμ„±ν™”λ  λ•Œ 1번만 ν˜ΈμΆœλœλ‹€.
      • 였브젝트 λ˜λŠ” μŠ€ν¬λ¦½νŠΈκ°€ λΉ„ν™œμ„±ν™”μΌ 경우 ν˜ΈμΆœλ˜μ§€ μ•ŠλŠ”λ‹€.
      • μ½”λ£¨ν‹΄μœΌλ‘œ μ‹€ν–‰ν•  수 μžˆλ‹€.
  2. Physics
    • FixedUpdate
      • κ³ μ •λœ ν”„λ ˆμž„ 주기둜 ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜μ΄λ‹€.
      • μŠ€ν¬λ¦½νŠΈκ°€ ν™œμ„±ν™”λ˜μ–΄ μžˆμ–΄μ•Ό ν˜ΈμΆœλœλ‹€.
    • OnTriggerXXX
      • 두 였브젝트의 좩돌 체크λ₯Ό ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€.
      • 물리 연산을 ν•˜μ§€ μ•Šκ³  ν†΅κ³Όν•œλ‹€.
    • OnCollisionXXX
      • 두 였브젝트의 좩돌 체크λ₯Ό ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€.
      • 물리 영ν–₯을 λ°›μœΌλ©° Rigidbodyκ°€ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€.
    • Update
      • λ§€ ν”„λ ˆμž„λ§ˆλ‹€ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜λ‘œ λ””λ°”μ΄μŠ€ μ„±λŠ₯μ΄λ‚˜ μ΅œμ ν™” 상황에 따라 framerateκ°€ λ³€ν•˜λ―€λ‘œ ν•¨μˆ˜ 호좜 μ‹œκ°„μ΄ 맀번 달라진닀.
      • μŠ€ν¬λ¦½νŠΈκ°€ ν™œμ„±ν™”λ˜μ–΄ μžˆμ–΄μ•Ό ν˜ΈμΆœλœλ‹€.
    • LastUpdate
      • λͺ¨λ“  Update ν•¨μˆ˜κ°€ 호좜된 ν›„ 1λ²ˆμ”© ν˜ΈμΆœλœλ‹€.
      • μŠ€ν¬λ¦½νŠΈκ°€ ν™œμ„±ν™”λ˜μ–΄ μžˆμ–΄μ•Ό ν˜ΈμΆœλœλ‹€.
      • 카메라 이동 λ‘œμ§μ— 주둜 μ‚¬μš©ν•œλ‹€.
  3. Decommissioning
    • OnApplicationQuit
      • μ‘μš© ν”„λ‘œκ·Έλž¨ μ’…λ£Œ μ „ λͺ¨λ“  μ˜€λΈŒμ νŠΈμ—μ„œ ν˜ΈμΆœλœλ‹€.
    •  OnDisable
      • 였브젝트 λ˜λŠ” μŠ€ν¬λ¦½νŠΈκ°€ λΉ„ν™œμ„±ν™”λ  λ•Œλ§ˆλ‹€ ν˜ΈμΆœλœλ‹€.
      • 이벀트 μ—°κ²° μ’…λ£Œ μ‹œ μ‚¬μš©ν•œλ‹€.
      • μ½”λ£¨ν‹΄μœΌλ‘œ μ‹€ν–‰ν•  수 μ—†λ‹€.
    • OnDestroy
      • 였브젝트 생쑴 κΈ°κ°„μ˜ λ§ˆμ§€λ§‰ ν”„λ ˆμž„μ΄ μ—…λ°μ΄νŠΈλœ ν›„ μ‹€ν–‰λœλ‹€.
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Game/✏ Unity' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [Unity] 에셋 λŸ°νƒ€μž„ λ‘œλ“œ(λ¦¬μ†ŒμŠ€ 폴더, 에셋 λ²ˆλ“€, μ–΄λ“œλ ˆμ„œλΈ” 에셋)
  • [Unity] μŠ€ν¬λ¦½ν„°λΈ” 였브젝트(Scriptable Object)
  • [Unity] Layer와 Tag μ‚¬μš© 및 차이
  • [Unity] Inspector Attribute
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
[Unity] 생λͺ… μ£ΌκΈ°(Life Cycle)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”