λͺ©λ‘μ 체 κΈ (1096)
KoreanFoodie's Study
μ΄λμ°λμ "μ΄λμ°μ μΈλ¦¬μΌ C++ κ²μ κ°λ°μ μ μ" μ± μ λ°λΌκ°λ©° μ€μ΅ν λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μ€μ΅μ νμν μλ£λ€μ μ΄ λ§ν¬μμ, μ κ° μμ ν μμ μμ€ μμ±λ³Έμ μ¬κΈ°μμ μ°Ύμλ³΄μ€ μ μμ΅λλ€. (μ λ μΈλ¦¬μΌ 4.27.2 λ²μ κΈ°μ€μΌλ‘ μμ νμμ΅λλ€) νλ‘μ νΈμ μ 리μ λͺ¨λ μΆκ° μ΄μ μ μμ ν C++ νμΌλ€μ μ λΆ ArenaBattle μ΄λΌλ ν΄λ νλμ λͺ°λ € μμλ€. λͺ¨λν λ° μ 리λ₯Ό μν΄ ν΄λλ₯Ό μ 리νμ. ν€λνμΌμ Public ν΄λμμ, CPP νμΌμ Private ν΄λμμ 보κ΄νλλ‘ λ§λ λ€. λ€μκ³Ό κ°μ΄ ꡬμ±νλ€. uproject νμΌμ μ°ν΄λ¦ν ν λ©λ΄μμ Generate Visual Studio project files μ ν΄λ¦νλ©΄ μ루μ νμκΈ°μ ν΄λ κ΅¬μ‘°κ° λ°λλ€. λ§μ°¬κ°μ§λ‘ ..
μΈλ¦¬μΌ νλ‘μ νΈ κ΅¬μ‘°λ₯Ό λ³κ²½νκ³ , λͺ¨λμ μΆκ°νλ μμ μ ν ν, λΉμ£ΌμΌ μ€νλμ€μμ "μ루μ λ€μ λΉλ" λ₯Ό νλλ° λΉλλ₯Ό μ€ν¨νλ€. κ·Έλ¦¬κ³ μ΄λ° μλ¬ λ©μμ§κ° λ΄λ€! (22/6/17 μΆκ° : λ¬Έμ κ° λλ dll, pdb νμΌμ μμ νλ©΄ ν΄κ²°λ¨) κ·Έλ¦¬κ³ λμ¨ ν¬λμ 리ν¬ν°. LoginId:be4263854175519d068bceae3ec68e43 EpicAccountId:8d541bf740fd4c8aa2ddbf45e5614f37 Assertion failed: Object->HasAnyFlags( RF_BeginDestroyed ) && !Object->HasAnyFlags( RF_FinishDestroyed ) [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Co..
μ΄λμ°λμ "μ΄λμ°μ μΈλ¦¬μΌ C++ κ²μ κ°λ°μ μ μ" μ± μ λ°λΌκ°λ©° μ€μ΅ν λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μ€μ΅μ νμν μλ£λ€μ μ΄ λ§ν¬μμ, μ κ° μμ ν μμ μμ€ μμ±λ³Έμ μ¬κΈ°μμ μ°Ύμλ³΄μ€ μ μμ΅λλ€. (μ λ μΈλ¦¬μΌ 4.27.2 λ²μ κΈ°μ€μΌλ‘ μμ νμμ΅λλ€) AIController μ λ΄λΉκ²μ΄μ μμ€ν NPC(Non Player Character) μ μΈκ³΅μ§λ₯μ μΆκ°ν΄ νλ μ΄μ΄λ₯Ό μ«μκ°μ 곡격νλλ‘ λ§λ€μ΄ 보μ. λ¨Όμ AIController λ₯Ό λΆλͺ¨ ν΄λμ€λ‘ νλ ABAIController ν΄λμ€λ₯Ό μμ±νλ κ²λΆν° μμν΄ λ³΄μ. ABCharacter.cpp ... #include "ABAIController.h" ... AABCharacter::AABCharacter() { ... AIControl..
μ΄λμ°λμ "μ΄λμ°μ μΈλ¦¬μΌ C++ κ²μ κ°λ°μ μ μ" μ± μ λ°λΌκ°λ©° μ€μ΅ν λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μ€μ΅μ νμν μλ£λ€μ μ΄ λ§ν¬μμ, μ κ° μμ ν μμ μμ€ μμ±λ³Έμ μ¬κΈ°μμ μ°Ύμλ³΄μ€ μ μμ΅λλ€. (μ λ μΈλ¦¬μΌ 4.27.2 λ²μ κΈ°μ€μΌλ‘ μμ νμμ΅λλ€) μμ λ°μ΄ν°μ νμ© μμ μ μ μ₯λΌ μλ μΊλ¦ν°μ μ€ν― λ°μ΄ν° ν μ΄λΈμ μΈλ¦¬μΌ μμ§μ λΆλ¬λ€μ΄λ κΈ°λ₯μ ꡬνν΄λ³Έλ€. μΊλ¦ν° μ€ν― λ°μ΄ν°λ κ²μμ κΈ°λ°μ μ΄λ£¨λ λ³νμ§ μλ λ°μ΄ν°μ΄λ―λ‘ λ³΄ν΅ κ²μ μ±μ΄ μ΄κΈ°νλ λ λΆλ¬λ€μΈλ€. μΈλ¦¬μΌμμ§μ κ²μ μ±μ κ΄λ¦¬νκΈ° μν μ©λλ‘ κ²μ μΈμ€ν΄μ€λΌλ μΈλ¦¬μΌ μ€λΈμ νΈλ₯Ό μ 곡νλ€. μ΄ κ²μ μΈμ€ν΄μ€κ° μΊλ¦ν°μ μ€ν―μ κ΄λ¦¬νλλ‘ μ€κ³νλ©΄ κ²μ μ±μ΄ μ΄κΈ°νλ λ μΊλ¦ν° μ€ν― λ°μ΄ν°λ₯Ό λΆλ¬λ€μ΄κ³ , κ²μ μ±μ΄ μ’ λ£λ λ..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! μ°κ΄ 컨ν μ΄λ (Associative Container) μ°κ΄ 컨ν μ΄λλ Key - Value ꡬ쑰λ₯Ό κ°μ§ 컨ν μ΄λλ₯Ό μλ―Ένλ€. set μ key κ°λ§ κ°μ§κ³ λ§λ μ§ν©μ΄κ³ , map μ key-value νμ΄λ₯Ό μ΄μ©νλ€. multiset μ μ€λ³΅κ°μ νμ©νλ set, multimap μ μ€λ³΅ ν€κ°μ νμ©νλ map μ΄λ€. set template void print_set(std::set& s) { // μ μ λͺ¨λ μμλ€μ μΆλ ₯νκΈ° std::cout
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! C++ νμ€ ν νλ¦Ώ λΌμ΄λΈλ¬λ¦¬ (STL : Standard Template Library) STL μ λ€μκ³Ό κ°μ μΈ κ°μ λΌμ΄λΈλ¬λ¦¬λ€μ μλ―Ένλ€. Container : μμ νμ μ κ°μ²΄λ₯Ό λ³΄κ΄ Iterator : 컨ν μ΄λμ 보κ΄λ μμμ μ κ·Όν μ μλ μ§μ μ Algorithm : λ°λ³΅μλ€μ κ°μ§κ³ μΌλ ¨μ μμ μ μν Container 컨ν μ΄λμλ λ°°μ΄μ²λΌ κ°μ²΄λ€μ μμ°¨μ μΌλ‘ 보κ΄νλ μνμ€ μ»¨ν μ΄λ(sequence container) μ ν€λ₯Ό λ°νμΌλ‘ λμλλ κ°μ μ°Ύμμ£Όλ μ°κ΄ 컨ν μ΄λ(associative container) κ° μλ€. λ¨Όμ μνμ€ μ»¨ν μ΄λμ κ²½μ° vector..
λͺ¨λμ μ½λλ₯Ό μ°Έκ³ νμ¬ ν΅μ¬ λ΄μ©μ κ°μΆλ¦¬κ³ μμ΅λλ€. μμΈν λ΄μ©μ λͺ¨λμ μ½λμ μΉμ΄λ¨Ήλ C++ κ°μ’λ₯Ό μ°Έκ³ ν΄ μ£ΌμΈμ! TMPλ₯Ό μ΄μ©ν μμ νλ³ νλ‘κ·Έλ¨ μ»΄νμΌλ¬λ ꡬ쑰μ μ΄λ ν μλ³μλ₯Ό 보μμλ 'κ°'μΈμ§ 'νμ 'μΈμ§ κ²°μ μ ν΄μΌ νλ€. λ€μμ μμλ₯Ό 보μ. template int func() { T::t* p; } class A { const static int t; }; class B { using t = int; }; μμμ, ν΄λμ€ A μ λν΄ func ν¨μλ₯Ό νΉμννλ€λ©΄, t κ° μ΄λ ν int κ°μ΄ λμ΄ T::t* p; κ° λ¨μν ν΄λμ€ A μ t μ p λ₯Ό κ³±νλ μμΌλ‘ ν΄μμ΄ λλ€. λ°λ©΄, func ν¨μκ° ν΄λμ€ B μ λν΄ νΉμν λλ€λ©΄, T::t* p; λ int ν ν¬μΈν° p λ₯Ό..
λ―Έκ΅ μ£Όμμμ₯μ΄ μλΉν λΆμν ν보λ₯Ό 보μ΄κ³ μμ΅λλ€. λ¬μμ-μ°ν¬λΌμ΄λ μ μμΌλ‘ μΈν ν격λ μκ² μ§λ§, μλΉμ λ¬Όκ°μ§μ μμΉμΌλ‘ μΈν λΆλ΄μ΄ μ£Όμμμ₯μλ κ·Έλλ‘ λλ¬λλ μ§μ‘°μΌμ§λ λͺ¨λ₯΄κ² μ΅λλ€. κΈλ¦¬ μΈμμΌλ‘ μΈν μλ°μ΄ μ£Όκ°μ μ΄λ―Έ λ°μλμλ€κ³ μκ°νμ§λ§, μΈμμΌλ‘ μΈν νκ²©μ΄ μ΄μ μμΌ μ§μ μ μΌλ‘ λλ¬λκ³ μλ€κ³ λ§νλ μ¬λλ μμ΅λλ€. μ¬λ¬λͺ¨λ‘, μμ¦ μν©μ μ¬λ―Έκ° μμ΅λλ€. μ¬λ―Έκ° μλ κ²μ λμ΄μμ, νΌλλ¬Όμ ν리λ μ¬λλ λ§κ² λ€μ. λκ΅°κ°λ λμ, λκ΅°κ°λ λλ¬Όμ, νΉμ λͺ¨λ κ²μ κ±Έμμμ§λ λͺ¨λ¦ λλ€. μ΄μ©λ©΄, κ·Έλ κΈ°μ λΆμν κ²μ΄ λΉμ°ν κ²μΌμ§λ λͺ¨λ¦ λλ€. νμ§λ§ μ κ° λ§μλ리λ 2κ°μ§λ₯Ό κΈ°μ΅νμ λ€λ©΄, μ§λ£¨νκ³ λΆμν ν‘보μ₯μ λ°λμ λ²μ΄λ μ μμΌλ¦¬λΌ λ€μ§ν©λλ€. 첫째, μ€μ§ η₯λ§μ΄ 'μ΅μ ..
Pure Virtual Function μ΄ μ κ±°κΈ°μ λμ? μΈλ¦¬μΌμ 곡λΆνλ μ€, νλ μ΄ μ€μ ESC λ²νΌμ λλ₯΄λ©΄ λΌλ μλ¬κ° λμ€λ©΄μ μ’ λ£κ° λλ νμμ΄ λ°μνλ€. κ·Έκ²λ μ§μμ μΌλ‘! pure virtual ν¨μκ° νΈμΆλμλ€λ?? λλ λ§λ μ λ μλλ°.. νλ©° μλ¬λ‘κ·Έλ₯Ό 보λ λ΄ μ€μκ° μλ, μμ§ μͺ½ λ²κ·Έλ‘ 보μλ€. μμΈν μ½μ΄λ³΄λ©΄ μ΄ λΆλΆμ΄ λ¬Έμ λΌλ 건λ°... Fatal error: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Core/Private/Windows/WindowsPlatformMisc.cpp] [Line: 475] Pure virtual function being called μΌλ¨ ꡬκΈλ§μ μ‘°κΈ ν΄λ³΄λ€κ°, μμ λ°©νΈμΌλ‘ ν΄λΉ μμ€μ½λλ₯Ό μ½κ°..
μ΄λμ°λμ "μ΄λμ°μ μΈλ¦¬μΌ C++ κ²μ κ°λ°μ μ μ" μ± μ λ°λΌκ°λ©° μ€μ΅ν λ΄μ©μ μ 리ν ν¬μ€ν μ λλ€. μ€μ΅μ νμν μλ£λ€μ μ΄ λ§ν¬μμ, μ κ° μμ ν μμ μμ€ μμ±λ³Έμ μ¬κΈ°μμ μ°Ύμλ³΄μ€ μ μμ΅λλ€. (μ λ μΈλ¦¬μΌ 4.27.2 λ²μ κΈ°μ€μΌλ‘ μμ νμμ΅λλ€) μΊλ¦ν° μμΌ μ€μ 무기λ λ©μμ μ°©μ©ν΄μΌ μΊλ¦ν° μ λλ©μ΄μ μ λ°λΌ λ¬΄κΈ°κ° μμ§μΈλ€. μΈλ¦¬μΌμ μμΌμ΄λΌλ μμ€ν μ μ 곡νλλ°, μ°λ¦¬κ° μ¬μ©νλ μλ¦¬μ΄ μΊλ¦ν°μ μ€μΌλ ν λ©μμλ μ΄λ―Έ hand_rSocket μ΄λΌλ μ΄λ¦μ μμΌμ΄ μμ±λΌ μλ€. ν리뷰 μμ μ μΆκ°ν΄μ, μμΌμ μμΉλ₯Ό μ‘°μ ν΄λ³΄μ. 무기 μ μ μ InfinityBlade : Weapons μ¬κΈ°μλ μμΌμ μμΉ κ°μ (-9.4, 3.0, 5.3), νμ κ°μ (18.4, 23.2, 83.0..