전체 κΈ€

전체 κΈ€

    [C++] RTTI(Run Time Type Information)

    RTTI(Run Time Type Information) C++μ—μ„œλŠ” λŸ°νƒ€μž„μ— 기초 클래슀의 객체 포인터가 μ–΄λ–€ 객체λ₯Ό 가리킀고 μžˆλŠ”μ§€ 정보λ₯Ό μ•Œλ €μ£ΌλŠ” RTTI κΈ°λŠ₯을 μ œκ³΅ν•œλ‹€. 객체 지ν–₯에선 클래슀 κ°„ 상속을 κ΅¬ν˜„ν•  수 있고, λ‹€ν˜•μ„±μ„ κ°€μ§€κ²Œ λ˜μ–΄ 기초 ν΄λž˜μŠ€λŠ” μžμ‹ μ˜ 멀버λ₯Ό μœ„μž„ν•œ νŒŒμƒ 클래슀λ₯Ό μžμ‹ μ˜ 객체 ν¬μΈν„°λ‘œ 가리킬 수 μžˆλ‹€. Base *pBase = new Derived(); 컴파일 λ‹Ήμ‹œμ—λŠ” pBaseκ°€ μ–΄λ–€ 객체λ₯Ό 가리킀고 μžˆλŠ”μ§€ μ•Œ 수 μ—†λ‹€. κ·Έμ € 기초 ν΄λž˜μŠ€μ™€ νŒŒμƒ 클래슀 쀑 μ–΄λ–€ 객체λ₯Ό 가리킀고 μžˆλŠ”μ§€ μ§μž‘λ§Œ ν•  수 μžˆλ‹€. μ΄λŸ¬ν•œ 정보λ₯Ό μ•Œλ €μ£ΌλŠ” 것이 RTTI이고 ν˜„μž¬ 객체 포인터가 가리킀고 μžˆλŠ” 객체 νƒ€μž… 정보λ₯Ό type_infoλΌλŠ” μ΄λ¦„μœΌλ‘œ vftable에 μ €μž₯ν•œλ‹€. 1. dyna..

    [Unreal][C++] Pawn 클래슀

    [Unreal][C++] Pawn 클래슀

    Pawn 클래슀Pawn ν΄λž˜μŠ€λŠ” ν”Œλ ˆμ΄μ–΄λ‚˜ AI의 μ»¨νŠΈλ‘€λŸ¬κ°€ μ—°κ²°λ˜μ–΄ μ œμ–΄λ°›μ„ 수 μžˆλ„λ‘ μ„€κ³„λœ 클래슀λ₯Ό μ˜λ―Έν•œλ‹€.  1) μ΄ˆκΈ°ν™”μƒμ„±ν•œ Pawn ν΄λž˜μŠ€μ— κ²Œμž„μ΄ μ‹œμž‘λ˜μ—ˆμ„ λ•Œ ν”Œλ ˆμ΄μ–΄μ˜ μž…λ ₯에 λ°˜μ‘ν•˜λ„λ‘ μ„€μ •ν•  것이닀.AutoPossessPlayer: 레벨이 μ‹œμž‘λ˜κ±°λ‚˜ 폰이 μƒμ„±λ˜μ—ˆμ„ λ•Œ μžλ™μœΌλ‘œ 폰을 μ†Œμœ ν•΄μ•Ό ν•˜λŠ” ν”Œλ ˆμ΄μ–΄ 컨트둀러λ₯Ό κ²°μ •ν•œλ‹€.AMyPawn::AMyPawn(){ // Set this pawn to call Tick() every frame. You can turn this off to improve performance if you don't need it. PrimaryActorTick.bCanEverTick = true; AutoPossessPlayer = EAu..

    [Unreal][C++] 타이머

    1. νƒ€μ΄λ¨Ένƒ€μ΄λ¨ΈλŠ” μ‚¬μš©μžκ°€ μ •μ˜ν•œ μ‹œκ°„λ§ˆλ‹€ μ‚¬μš©μžκ°€ μ§€μ •ν•œ λ™μž‘μ΄ μ‹€ν–‰λ˜λ„λ‘ ν•œλ‹€. μ΄λŸ¬ν•œ κΈ°λŠ₯은 Tick ν•¨μˆ˜μ—μ„œ DeltaTime 값을 톡해 κ΅¬ν˜„ν•  μˆ˜λ„ μžˆλ‹€. κ·ΈλŸ¬λ‚˜ μ§€μ •ν•œ λ™μž‘μ΄ μ§€μ†μ μœΌλ‘œ μ‹€ν–‰λ˜μ§€ μ•Šκ³ , νŠΉμ •ν•œ μ‹œκ°„μ—λ§Œ λͺ‡ 번 μ‹€ν–‰λ˜κ±°λ‚˜, 텀이 1초λ₯Ό λ„˜λŠ” 경우라면 Tick ν•¨μˆ˜λ³΄λ‹€ 타이머λ₯Ό μ΄μš©ν•˜λŠ” 것이 μ’‹λ‹€. 2. 타이머 κ΄€λ¦¬νƒ€μ΄λ¨ΈλŠ” κΈ€λ‘œλ²Œ TimerManagerμ—μ„œ κ΄€λ¦¬ν•˜λ©° κ²Œμž„ μΈμŠ€ν„΄μŠ€ μ˜€λΈŒμ νŠΈμ™€ 각 μ›”λ“œμ— μ‘΄μž¬ν•œλ‹€. TimerManagerλ₯Ό 톡해 타이머λ₯Ό 가져와 μ‚¬μš©ν•˜κ±°λ‚˜ μ’…λ£Œμ‹œν‚¬ 수 μžˆλ‹€. 1) μ‚¬μš©SetTimer ν•¨μˆ˜λ₯Ό 톡해 λ”œλ ˆμ΄ ν›„ ν•¨μˆ˜λ‚˜ 델리게이트λ₯Ό ν˜ΈμΆœν•˜λŠ” 타이머λ₯Ό μ„€μ •ν•˜κ±°λ‚˜ κ·Έ ν•¨μˆ˜ ν˜ΈμΆœμ„ λ¬΄ν•œ λ°˜λ³΅ν•˜λ„λ‘ μ„€μ •ν•  수 μžˆλ‹€.GetWorldTimerManager().SetTi..

    머터리얼(Material)

    머터리얼(Material)

    1. Material λ¨Έν„°λ¦¬μ–Όμ΄λž€ μ˜€λΈŒμ νŠΈμ™€ 맡에 μ›ν•˜λŠ” λͺ¨μ–‘μƒˆλ₯Ό λ‚΄λŠ” 데 μžˆμ–΄ κ°€μž₯ 핡심적인 λΆ€λΆ„ 쀑 ν•˜λ‚˜λ‘œ μ‚¬μš©λ˜λŠ” ν…μŠ€μ³μ— λŒ€ν•œ ν‘œλ©΄ λ Œλ”λ§ λ°©λ²•μ˜ μ •μ˜μ΄λ‹€. 2. Material Parameter κΈ°λ³Έ ν…μŠ€μ³ 이미지(Albedo, Base Color)만 μ‚¬μš©ν•œλ‹€λ©΄ λ‹¨μˆœν•œ μ΄λ―Έμ§€λ§Œμ„ λ…ΈμΆœν•˜μ§€λ§Œ, νŒŒλΌλ―Έν„°λ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ 거의 λͺ¨λ“  ν˜„μ‹€ 세계 ν‘œλ©΄μ˜ 외양을 ν‘œν˜„ν•  수 μžˆλ‹€. 1) Metallic ν‘œλ©΄μ˜ λ°˜μ‚¬λ„ 및 광원 λ°˜μ‘μœΌλ‘œ νŒŒλΌλ―Έν„°μ— 따라 ν‘œλ©΄μ΄ μ–Όλ§ˆλ‚˜ κΈˆμ† 같은지λ₯Ό κ²°μ •ν•œλ‹€. 2) Normal 광원을 λ°›λŠ” λ²”ν”„, ν™ˆ 및 슀크래치 λ“±μ˜ ν‘œλ©΄ λ””ν…ŒμΌμ„ λͺ¨λΈμ— μΆ”κ°€ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄ μ‹€μ œ λͺ¨λΈλ§μœΌλ‘œ ν™ˆκ³Ό λ‚˜μ‚¬λ₯Ό ν‘œν˜„ν•˜λŠ” 것이 μ•„λ‹Œ λ…Έλ©€ 맡으둜 ν‘œν˜„ν•  수 μžˆλ‹€. λ§Œμ•½ μ‹€μ œ μ§€μ˜€λ©”νŠΈλ¦¬λ‘œ λͺ¨..

    [Git] Git README, .gitignore 파일

    [Git] Git README, .gitignore 파일

    Git Repositoriesλ₯Ό λ§Œλ“€ λ•Œ, README 파일과 .gitignore νŒŒμΌμ„ 생성할 수 μžˆλ‹€. README 파일 README νŒŒμΌμ€ ν”„λ‘œμ νŠΈμ™€ 리포지토리λ₯Ό μ„€λͺ…ν•˜λŠ” μ±…μ˜ ν‘œμ§€μ™€ 같은 λ¬Έμ„œμ΄λ‹€. ν”„λ‘œμ νŠΈ μ†Œκ°œ, μ‚¬μš©ν•œ 기술, ν™œμš© 방법 등을 κΈ°λ‘ν•œλ‹€. 파일의 ν™•μž₯μžλŠ” md둜 λ§ˆν¬λ‹€μš΄(Markdown)의 μ•½μžμ΄λ‹€. https://coding-factory.tistory.com/620 [Git] GitHub README μž‘μ„±λ²• (λ§ˆν¬λ‹€μš΄, 이미지, Gif, μ½”λ“œ 블둝 μ‚¬μš©λ²•) λ¦¬λ“œλ―Έ(README)λž€? READMEλŠ” μ‰½κ²Œ λ§ν•΄μ„œ ν”„λ‘œμ νŠΈ μ†Œκ°œκΈ€μ΄λΌκ³  ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 일반적으둜 λ””λ ‰ν† λ¦¬λ‚˜ μ••μΆ• νŒŒμΌμ— ν¬ν•¨λœ 기타 νŒŒμΌμ— λŒ€ν•œ 정보λ₯Ό ν¬ν•¨ν•˜κ³  있으며, 일반적으둜 μ†Œν”„νŠΈμ›¨μ–΄μ™€ coding-factory..

    [C++] νŽΈμ§‘ 거리 μ•Œκ³ λ¦¬μ¦˜(Edit Distance Algorithm)

    [C++] νŽΈμ§‘ 거리 μ•Œκ³ λ¦¬μ¦˜(Edit Distance Algorithm)

    νŽΈμ§‘ 거리 μ•Œκ³ λ¦¬μ¦˜ 1. κ°œλ… νŽΈμ§‘ 거리 μ•Œκ³ λ¦¬μ¦˜(Edit Distance Algorithm)은 두 개의 λ¬Έμžμ—΄ A, Bκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 두 λ¬Έμžμ—΄μ΄ μ–Όλ§ˆλ‚˜ μœ μ‚¬ν•œ 지λ₯Ό μ•Œμ•„λ‚Ό 수 μžˆλŠ” μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. 즉, λ¬Έμžμ—΄ Aκ°€ λ¬Έμžμ—΄ B와 같아지기 μœ„ν•΄μ„œλŠ” λͺ‡ 번의 연산을 진행해야 ν•˜λŠ”μ§€ μ•Œ 수 μžˆλ‹€. μ—¬κΈ°μ„œμ˜ μ—°μ‚°μ΄λž€ μ‚½μž…(Insertion), μ‚½μž…(Deletion), λŒ€μ²΄(Replacement)λ₯Ό λ§ν•œλ‹€. λ¬Έμžμ—΄ κ°„μ˜ μœ μ‚¬λ„ μΈ‘μ •μ²˜λŸΌ κΈ°λ³Έμ μœΌλ‘œλŠ” 두 데이터 μ‚¬μ΄μ˜ μœ μ‚¬λ„λ₯Ό μ•Œμ•„λ‚΄κΈ° μœ„ν•΄ μ‚¬μš©ν•  수 있으며 특히 ν”„λ‘œκ·Έλž¨μ˜ ν‘œμ ˆ μ—¬λΆ€, 철자 였λ₯˜ 검사 등에 μ‚¬μš©ν•  수 μžˆλ‹€. 2. κΈ°λ³Έ 원리 3. 문제 https://leetcode.com/problems/edit-distance/description/ Edit D..