[Unreal] κ²Œμž„ μΈμŠ€ν„΄μŠ€, μ„œλΈŒμ‹œμŠ€ν…œ

2024. 6. 18. 19:14Β·πŸ“ Game/✏ Unreal

1. κ²Œμž„ μΈμŠ€ν„΄μŠ€

κ²Œμž„ μΈμŠ€ν„΄μŠ€λŠ” κ²Œμž„μ΄ μ‹œμž‘ν•  λ•Œ λ§Œλ“€μ–΄μ Έ κ²Œμž„μ΄ μ’…λ£Œλ  λ•ŒκΉŒμ§€ μ‘΄μž¬ν•œλ‹€.

  • 레벨이 λ³€κ²½λ˜μ–΄λ„ 계속 μœ μ§€λ˜μ–΄ 정보듀을 μ €μž₯ν•˜κ³  κ³΅μœ ν•˜λŠ” 데 μ‚¬μš©ν•œλ‹€.
  • 싱글톀과 거의 λΉ„μŠ·ν•œ κ°œλ…μ΄λ‹€.

 

μƒμ„±λœ κ²Œμž„ μΈμŠ€ν„΄μŠ€λŠ” ν”„λ‘œμ νŠΈ μ„ΈνŒ…μ—μ„œ 섀정이 ν•„μš”ν•˜λ‹€. μ΄λ•Œ νŠΉμ • κ²Œμž„ μΈμŠ€ν„΄μŠ€λ₯Ό μ„ νƒν•˜λ©΄ κ²Œμž„ 쀑 λ³€κ²½ν•  수 μ—†μœΌλ©° μ„ νƒλœ ν•˜λ‚˜μ˜ κ²Œμž„ μΈμŠ€ν„΄μŠ€λ§Œ 쑴재 κ°€λŠ₯ν•˜λ‹€.

 

ν”„λ‘œμ νŠΈ μ„ΈνŒ…

 

κ²Œμž„ 흐름 κ°œμš”μ— λ”°λ₯΄λ©΄ κ²Œμž„ μΈμŠ€ν„΄μŠ€λŠ” κ³΅μ‹μ μœΌλ‘œ κ²Œμž„ ν”Œλ ˆμ΄κ°€ μ‹œμž‘λ˜κΈ° μ „, λ¨Όμ € κ²Œμž„ μΈμŠ€ν„΄μŠ€λ₯Ό 생성(Create)ν•œ ν›„ μ΄ˆκΈ°ν™”(Init)λ₯Ό μ§„ν–‰ν•œλ‹€. 

 

κ²Œμž„ 흐름

 

2. μ„œλΈŒμ‹œμŠ€ν…œ

μ„œλΈŒμ‹œμŠ€ν…œμ€ 수λͺ…이 κ΄€λ¦¬λ˜λŠ” μžλ™ μΈμŠ€ν„΄μ‹± ν΄λž˜μŠ€μ΄λ‹€. 즉, ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 직접 μΈμŠ€ν„΄μŠ€λ₯Ό 생성 및 κ΄€λ¦¬ν•˜μ§€ μ•Šμ•„λ„ 엔진이 μ•Œμ•„μ„œ μΈμŠ€ν„΄μ‹±ν•˜κ³  생성 및 μ†Œλ©Έμ„ κ΄€λ¦¬ν•œλ‹€λŠ” 것이닀.

 

μ œκ³΅ν•˜λŠ” μ„œλΈŒ μ‹œμŠ€ν…œμ€ λ‹€μŒκ³Ό κ°™λ‹€.

 

Subsystem Inherit From
Engine UEngineSubsystem
Editor UEditorSubsystem
GameInstance UGameInstanceSubsystem
LocalPlayer ULocalPlayerSubsystem

 

이 쀑 UGameInstanceSubsystem 베이슀 ν΄λž˜μŠ€μ—μ„œ νŒŒμƒλœ 클래슀λ₯Ό 예λ₯Ό λ“€λ©΄ λ‹€μŒκ³Ό 같은 과정을 κ±°μΉœλ‹€.

 

class UMyGameInstanceSubsystem : public UGameInstanceSubsystem

 

  1. UGameInstance 생성 이후, UMyGameInstanceSubsystem μΈμŠ€ν„΄μŠ€ μ—­μ‹œ μƒμ„±λœλ‹€.
  2. UGameInstance μ΄ˆκΈ°ν™” μ‹œ, μ„œλΈŒμ‹œμŠ€ν…œμ—μ„œ Initialize()κ°€ ν˜ΈμΆœλœλ‹€.
  3. UGameInstance μ’…λ£Œ μ‹œ, μ„œλΈŒμ‹œμŠ€ν…œμ—μ„œ Deinitialize()κ°€ ν˜ΈμΆœλœλ‹€.
  4. μ„œλΈŒμ‹œμŠ€ν…œμ— λŒ€ν•œ μ°Έμ‘°κ°€ μ‚­μ œλ˜κ³  더 이상 μ°Έμ‘°κ°€ μ—†μœΌλ©΄ μ„œλΈŒμ‹œμŠ€ν…œμ€ κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ λœλ‹€.

 

κ·Έλ ‡λ‹€λ©΄ κ·Έλƒ₯ UGameInstanceλ₯Ό μ‚¬μš©ν•˜μ§€ μ™œ UGameInstanceSubsystemλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμΌκΉŒ?

 

UGameInstanceSubsystem

  • ν”„λ‘œκ·Έλž˜λ° μ‹œκ°„μ΄ μ ˆμ•½λœλ‹€.
  • μ—”μ§„ 클래슀 μ˜€λ²„λΌμ΄λ“œλ₯Ό ν”Όν•  수 μžˆλ‹€.
  • 이미 λ°”μœ ν΄λž˜μŠ€μ— API μΆ”κ°€λ₯Ό ν”Όν•  수 μžˆλ‹€.
  • μ‚¬μš©μžμ—κ²Œ μΉœμˆ™ν•œ μœ ν˜•μ˜ λ…Έλ“œλ₯Ό 톡해 λΈ”λ£¨ν”„λ¦°νŠΈλ‘œ μ•‘μ„ΈμŠ€ ν•  수 μžˆλ‹€.
  • 에디터 μŠ€ν¬λ¦½νŒ…μ΄λ‚˜ ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±μ„ μœ„ν•΄ Python μŠ€ν¬λ¦½νŠΈμ— μ•‘μ„ΈμŠ€ ν•  수 μžˆλ‹€.
  • μ½”λ“œλ² μ΄μŠ€μ˜ λͺ¨λ“ˆμ„±κ³Ό 일관성을 μ œκ³΅ν•œλ‹€.
  • ν”ŒλŸ¬κ·ΈμΈ μ œμž‘ μ‹œ μœ μš©ν•˜μ—¬ ν”ŒλŸ¬κ·ΈμΈ μž‘λ™μ— ν•„μš”ν•œ μ½”λ“œ μž‘μ—…μ΄ 없어도 λœλ‹€.
κ²Œμž„ μ „μ²΄μ μœΌλ‘œ κ³΅μœ λ˜μ–΄μ•Ό ν•  땐 UGameInstance을 μ‚¬μš©ν•˜κ³ 
νŠΉμ • κΈ°λŠ₯λ§Œμ„ 포함할 땐 UGameInstanceSubsystem을 μ‚¬μš©ν•˜λ©΄ 쒋을 것 κ°™λ‹€.

 

μ°Έκ³ 

https://poppeople.tistory.com/39

 

30. λΈŒλŸ¬μ‰¬μœ : κ²Œμž„ μΈμŠ€ν„΄μŠ€(Game Instance)와 데이터 μ €μž₯

# 이번 μž₯μ—μ„œλŠ” κ²Œμž„ μΈμŠ€ν„΄μŠ€(Game Instance) 클래슀의 λ“±μž₯ 이번 μž₯μ—μ„œλŠ” κ²Œμž„ μΈμŠ€ν„΄μŠ€(Game Instance)λΌλŠ” 것을 λ§Œλ“€κ±°μ˜ˆμš”. κ²Œμž„ μΈμŠ€ν„΄μŠ€λŠ” κ²Œμž„μ΄ μ‹œμž‘ν•  λ•Œ λ§Œλ“€μ–΄μ Έμ„œ κ²Œμž„μ΄ μ’…λ£Œλ  λ•Œ κΉŒμ§€

poppeople.tistory.com

https://docs.unrealengine.com/4.27/ko/ProgrammingAndScripting/Subsystems/

 

ν”„λ‘œκ·Έλž˜λ° μ„œλΈŒμ‹œμŠ€ν…œ

언리얼 μ—”μ§„ 4 의 ν”„λ‘œκ·Έλž˜λ° μ„œλΈŒμ‹œμŠ€ν…œ κ°œμš”μž…λ‹ˆλ‹€.

docs.unrealengine.com

μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Game/✏ Unreal' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [Unreal] 캐릭터 μ• λ‹ˆλ©”μ΄μ…˜ κ°œμ„ 
  • [Unreal] ν”„λ‘œνΌν‹°(λ¦¬ν”Œλ ‰μ…˜), 맀크둜, κ°€λΉ„μ§€ μ»¬λ ‰μ…˜
  • [Unreal] Object, Actor, Component
  • [Unreal] UMG
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
[Unreal] κ²Œμž„ μΈμŠ€ν„΄μŠ€, μ„œλΈŒμ‹œμŠ€ν…œ
μƒλ‹¨μœΌλ‘œ

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