βš™οΈ 엔진/🍫 언리얼

[Unreal] 언리얼 였브젝트

peewoong 2024. 3. 29. 16:48

κ²Œμž„ ν”„λ‘œκ·Έλž˜λ°μ˜ νŠΉμˆ˜μ„±

- μ‚¬μš©μž : μΎŒμ ν•œ κ²½ν—˜μ„ μœ„ν•΄ 단일 μ»΄ν“¨ν„°μ—μ„œ μ΅œλŒ€ μ„±λŠ₯을 뽑아내야 ν•œλ‹€

- 개발자 : κ²Œμž„μ˜ 규λͺ¨κ°€ 컀질수둝 λ°©λŒ€ν•˜κ³  λ³΅μž‘ν•œ κΈ°λŠ₯을 μ•ˆμ •μ μœΌλ‘œ 관리해야 ν•œλ‹€

 

C++ : μ•ˆμ •μ„± < μ„±λŠ₯ / λ©”λͺ¨λ¦¬ 직접 μ œμ–΄ / μΊμ‹œ ν™œμš© κ·ΉλŒ€ν™” / μ €μˆ˜μ€€ API의 직접 호좜 / 볡사 μž‘μ—… μ΅œμ†Œν™”

 

객체 지ν–₯ 섀계 원칙(SOLID)

- μœ μ§€λ³΄μˆ˜μ™€ μœ μ—°ν•¨, ν™•μž₯μ„± ν–₯상을 μœ„ν•œ 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°

- ν•˜λ‚˜μ˜ ν΄λž˜μŠ€λŠ” ν•˜λ‚˜μ˜ μ±…μž„λ§Œ κ°€μ Έμ•Ό ν•œλ‹€

- 클래슀 μ„€κ³„λŠ” λ³€κ²½ν•˜μ§€ μ•Šκ³  λ™μž‘μ„ ν™•μž₯ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€

- μžμ‹ ν΄λž˜μŠ€λŠ” λΆ€λͺ¨ 클래슀λ₯Ό λŒ€μ²΄ μ‚¬μš©ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€

- μž‘κ³  λͺ…ν™•ν•œ μΈν„°νŽ˜μ΄μŠ€λ“€λ‘œ 뢄리해 관리해야 ν•œλ‹€

- κ΅¬ν˜„μ„ λ°°μ œμ‹œν‚¨ μƒμœ„ 정책을 바라보며 섀계해야 ν•œλ‹€

πŸ‘‰ κ²Œμž„ 규λͺ¨κ°€ λŒ€ν˜•ν™”λ˜λ©΄μ„œ λͺ¨λ˜ 객체 지ν–₯ 섀계 λ„μž…μ΄ ν•„μš”ν•΄μ§

 

언리얼 C++

μ„±λŠ₯을 μœ„ν•΄ κΈ°μ‘΄ C++ μ–Έμ–΄λ₯Ό ν™•μž₯ν•΄ λͺ¨λ˜ 객체 지ν–₯ 섀계λ₯Ό κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“¬

λͺ¨λ˜ 객체 지ν–₯ 섀계λ₯Ό μœ„ν•œ μƒˆλ‘œμš΄ μ‹œμŠ€ν…œ ꡬ좕

 

언리얼 였브젝트

κΈ°μ‘΄ C++ μ˜€λΈŒμ νŠΈμ— λͺ¨λ˜ 객체 지ν–₯ 섀계λ₯Ό μœ„ν•œ λ‹€μ–‘ν•œ κΈ°λŠ₯을 μΆ”κ°€ν•œ 였브젝트

일반 C++ μ˜€λΈŒμ νŠΈμ™€ 언리얼 였브젝트의 두 객체 λͺ¨λ‘ μ‚¬μš© κ°€λŠ₯

ꡬ뢄을 μœ„ν•΄ 일반 C++ μ˜€λΈŒμ νŠΈλŠ” F, 언리얼 μ˜€λΈŒμ νŠΈλŠ” 접두사 Uλ₯Ό μ‚¬μš©

 

C++ 였브젝트 : μ €μˆ˜μ€€μ˜  λΉ λ₯Έ 처리λ₯Ό μœ„ν•œ κΈ°λŠ₯ κ΅¬ν˜„μ— μ‚¬μš©

언리얼 였브젝트 : μ½˜ν…μΈ  μ œμž‘μ— κ΄€λ ¨λœ λ³΅μž‘ν•œ 섀계 κ΅¬ν˜„μ— μ‚¬μš©


 

Object 클래슀 μΆ”κ°€ν•˜κΈ°

 

1λ²ˆμ€ 였브젝트λ₯Ό κ΅¬μ„±ν•˜κΈ° μœ„ν•œ κΈ°λ³Έ 헀더

2λ²ˆμ€ μ•„λž˜ 폴더 κ²½λ‘œμ— μœ„μΉ˜. μ†ŒμŠ€ μ½”λ“œ 파일 X

 

UCLASS 맀크둜 μ„ μ–Έ

클래슀 이름은 μ•žμ— U 접두사 뢙이기. 반면 파일 자체 이름은 κ·Έλƒ₯ 이름을 μ‚¬μš©ν•œλ‹€.