[Unreal] μœ λ‹ˆν‹° 개발자λ₯Ό μœ„ν•œ 언리얼 엔진
Β·
πŸ“ Game/✏ Unreal
μœ λ‹ˆν‹° 개발자λ₯Ό μœ„ν•œ 언리얼 엔진 κ²Œμž„ κ°œλ°œμ€ 자체 엔진을 μ‚¬μš©ν•˜κΈ°λ„ ν•˜μ§€λ§Œ λŒ€λΆ€λΆ„ μœ λ‹ˆν‹° ν˜Ήμ€ 언리얼 엔진을 μ„ νƒν•˜κ³  μžˆλ‹€. 두 엔진이 ν™œμš©λ˜λŠ” μ΄μœ λŠ” μ‘°κΈˆμ”© λ‹€λ₯΄λ‹€. μœ λ‹ˆν‹°λŠ” μ‰½κ²Œ 배울 수 μžˆλ‹€λŠ” 강점이 μžˆλ‹€. 엔진 μ‚¬μš©λ²•μ΄ κ°„νŽΈν•˜κ³  직관적이라 κ°„λ‹¨ν•œ ν”„λ‘œκ·Έλž˜λ° μ§€μ‹μœΌλ‘œ μ›¬λ§Œν•œ κ²Œμž„μ„ κ°œλ°œν•˜λŠ”λ° λ¬Έμ œκ°€ μ—†λ‹€. μ΄λŸ¬ν•œ μž₯점으둜 μœ λ‹ˆν‹°λ₯Ό μ‚¬μš©ν•˜λŠ” 개발자의 λΉ„μœ¨μ΄ κΎΈμ€€νžˆ μ¦κ°€ν•˜κ³  μžˆλ‹€. λ˜ν•œ μ™ΈλΆ€μ—μ„œ μ œμž‘ν•œ λ¦¬μ†ŒμŠ€ 적용이 빨라 개발 기간을 쀄일 수 μžˆλ‹€. μ–Έλ¦¬μ–Όμ˜ 강점은 κ·Έλž˜ν”½ 퀄리티이닀. κ·Έλ™μ•ˆ κ·Έλž˜ν”½ μ„±λŠ₯을 λ°”νƒ•μœΌλ‘œ 온라인, μ½˜μ†” κ²Œμž„μ—μ„œ 주둜 μ‚¬μš©λλ‹€. ν•˜μ§€λ§Œ νœ΄λŒ€κΈ°κΈ°μ˜ λ°œμ „μœΌλ‘œ 퀄리티가 ν–₯μƒλ˜μ–΄ λͺ¨λ°”일 κ²Œμž„ μ‹œμž₯μ—μ„œλ„ 두각을 λ“œλŸ¬λ‚΄κΈ° μ‹œμž‘ν–ˆλ‹€. λ˜ν•œ 리얼 νƒ€μž„ λ Œλ”λ§ κΈ°λŠ₯으둜 λ›°μ–΄λ‚œ νš¨μœ¨μ„ μžλž‘ν•œλ‹€..
[Unity] μ½”λ“œ λ‚΄ νž™ λ©”λͺ¨λ¦¬ μ΅œμ ν™”
Β·
πŸ“ Game/✏ Unity
μ½”λ“œ λ‚΄ νž™ λ©”λͺ¨λ¦¬ μ΅œμ ν™” ν”„λ‘œκ·Έλž¨μ„ λ§Œλ“€ λ•Œ νž™ λ©”λͺ¨λ¦¬ μ˜μ—­μ€ ν”„λ‘œκ·Έλž˜λ¨Έκ°€ 항상 μ‹ κ²½ 써야 λ˜λŠ” μ€‘μš”ν•œ λ©”λͺ¨λ¦¬ μ˜μ—­μ΄λ‹€. μœ λ‹ˆν‹°μ—μ„œ νž™ λ³€μˆ˜κ°€ 생성될 λ•Œ μ—¬μœ  λ©”λͺ¨λ¦¬κ°€ μΆ©λΆ„ν•˜μ§€ μ•Šλ‹€λ©΄ GC을 μˆ˜ν–‰ν•œλ‹€. ν•˜μ§€λ§Œ GC은 κ½€λ‚˜ 무거운 μž‘μ—…μ΄κΈ° λ•Œλ¬Έμ— 이 μˆœκ°„ ν”„λ ˆμž„ λ“œλ‘­μ΄ λ°œμƒν•œλ‹€. 이λ₯Ό κ°œμ„ ν•˜κΈ° μœ„ν•΄ μ΅œκ·Όμ—λŠ” Inscremental GC κΈ°λŠ₯이 μ—…λ°μ΄νŠΈλ˜κΈ΄ ν•˜μ˜€μ§€λ§Œ, κ·Έλž˜λ„ GC의 λŒ€μƒμ΄ λ˜λŠ” νž™ 할당을 μ΅œλŒ€ν•œ λ§Œλ“€μ§€ μ•ŠλŠ” 것이 μ’‹λ‹€. 1) 자주 μ‚¬μš©λ˜λŠ” μ°Έμ‘° λ³€μˆ˜λŠ” μΊμ‹±ν•˜κΈ° private Button btn; void Start() { btn = GetComponent(); } public void MyMethod() { //Button btn = GetComponent(); // ν•¨μˆ˜ ν˜ΈμΆœμ‹œ λ§ˆλ‹€ νž™ ..
μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄(Composite Pattern)
Β·
πŸ“ Computer Science/✏ Design Pattern
μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄(Composite Pattern) μ»΄ν¬μ§€νŠΈ OOPμ—μ„œ μ»΄ν¬μ§€νŠΈλŠ” ν•˜λ‚˜ μ΄μƒμ˜ μœ μ‚¬ν•œ 객체둜 κ΅¬μ„±λœ 집합 객체둜 λͺ¨λ‘ μœ μ‚¬ν•œ κΈ°λŠ₯을 λ‚˜νƒ€λ‚Έλ‹€. 이λ₯Ό 톡해 객체 그룹을 μ‘°μž‘ν•˜λŠ” κ²ƒμ²˜λŸΌ 단일 객체λ₯Ό μ‘°μž‘ν•  수 μžˆλ‹€. μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄ μ»΄ν¬μ§€νŠΈ νŒ¨ν„΄μ€ 볡합 κ°μ²΄λ‚˜ 단일 객체λ₯Ό λ™μΌν•˜κ²Œ μ·¨κΈ‰ν•˜λŠ” 것을 λͺ©μ μœΌλ‘œ ν•œλ‹€. 트리 ꡬ쑰둜 μž‘μ„±ν•˜μ—¬ 전체-λΆ€λΆ„(whole-part) 관계λ₯Ό ν‘œν˜„ν•œλ‹€. 1. κ΅¬ν˜„ μ‚¬μš©μžλŠ” Leaf와 Composite 클래슀λ₯Ό 직접 μ°Έμ‘°ν•˜μ§€ μ•Šκ³ , 곡톡 μΈν„°νŽ˜μ΄μŠ€ Componentλ₯Ό μ°Έμ‘°ν•œλ‹€. 1) Component λͺ¨λ“  Component듀을 μœ„ν•œ μΆ”μƒν™”λœ κ°œλ…μ΄λ‹€. Leaf와 Composite 클래슀의 μΈν„°νŽ˜μ΄μŠ€μ΄λ‹€. interface Graphic { public void print..
μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern)
Β·
πŸ“ Computer Science/✏ Design Pattern
μŠ€νŠΈλž˜ν‹°μ§€ νŒ¨ν„΄(Strategy Pattern) μ „λž΅ νŒ¨ν„΄μ΄λž€ λΉ„μŠ·ν•œ λ™μž‘μ„ ν•˜μ§€λ§Œ λ‹€λ₯΄κ²Œ κ΅¬ν˜„λ˜μ–΄ μžˆλŠ” ν–‰μœ„(μ „λž΅)듀을 κ³΅ν†΅μ˜ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†λ°›λŠ” 각각의 클래슀둜 κ΅¬ν˜„ν•˜κ³  λ™μ μœΌλ‘œ λ°”κΏ€ 수 μžˆλ„λ‘ ν•˜λŠ” νŒ¨ν„΄μ΄λ‹€. μ „λž΅ νŒ¨ν„΄μœΌλ‘œ κ΅¬ν˜„λœ μ½”λ“œλŠ” 직접 ν–‰μœ„μ— λŒ€ν•œ μ½”λ“œλ₯Ό μˆ˜μ •ν•  ν•„μš” 없이 μ „λž΅λ§Œ λ³€κ²½ν•˜μ—¬ μœ μ—°ν•˜κ²Œ ν™•μž₯ν•  수 있게 λœλ‹€. 1. κ΅¬ν˜„ λ§Œμ•½ μ „λž΅ νŒ¨ν„΄μ„ μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄, λ‹¨μˆœνžˆ if-elseλ₯Ό μ‚¬μš©ν•˜μ—¬ κ΅¬ν˜„ν•΄μ•Ό ν•˜λ©° κ²Œμž„μ΄ μ—…λ°μ΄νŠΈλ˜μ–΄ 직업이 μΆ”κ°€λ˜κ±°λ‚˜ μˆ˜μ •μ΄ ν•„μš”ν•˜λ‹€λ©΄ attack() λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν•΄μ•Ό ν•  것이닀. class Character { private final String job; Character(String job) { this.job = job; } void attack() ..
[κ²Œμž„ ν”„λ‘œκ·Έλž˜λ° νŒ¨ν„΄] κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄
Β·
πŸ“ Computer Science/✏ Design Pattern
κ²Œμž„ κ°œλ°œμ—μ„œ μ‚¬μš©λ˜λŠ” λ””μžμΈ νŒ¨ν„΄ κ²Œμž„ 개발의 κ΄€μ μ—μ„œ 각 λ””μžμΈ νŒ¨ν„΄μ— λŒ€ν•΄μ„œ λ‹€λ£° 것이닀. κ·ΈλŸ¬λ‚˜ λͺ¨λ“  μ•±μ΄λ‚˜ κ²Œμž„ κ°œλ°œμ—μ„œλ„ μ μš©λœλ‹€. 1. Singleton Design Pattern ν”„λ‘œκ·Έλž¨μ΄ μ‹œμž‘λ  λ•Œ ν΄λž˜μŠ€κ°€ 졜초 ν•œ 번만 λ©”λͺ¨λ¦¬λ₯Ό ν• λ‹Ήν•˜κ³  κ·Έ λ©”λͺ¨λ¦¬μ— μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“€μ–΄ μ‚¬μš© 2020.05.16 - [πŸ“/✏ Design Pattern] - 싱글톀 νŒ¨ν„΄(Singleton Pattern) κ²Œμž„μ—μ„œλŠ” μ˜ν™”μ²˜λŸΌ ν•œ λͺ…μ˜ λ””λ ‰ν„°κ°€ μ‘΄μž¬ν•œλ‹€. λ””λ ‰ν„°λŠ” κ²Œμž„μ—μ„œ μΌμ–΄λ‚˜λŠ” λͺ¨λ“  것을 μˆ˜ν–‰ν•˜λŠ” ν΄λž˜μŠ€μ΄λ‹€. 였브젝트λ₯Ό λžœλ”λ§ ν•˜κ³  μœ„μΉ˜λ₯Ό μ—…λ°μ΄νŠΈν•˜κ³  ν”Œλ ˆμ΄μ–΄μ˜ μž…λ ₯을 μ •ν™•ν•œ 캐릭터에 전달해 μ£ΌλŠ” λ“±μ˜ 역할을 μˆ˜ν–‰ν•œλ‹€. Singleton νŒ¨ν„΄μ„ 톡해 λ””λ ‰ν„°κ°€ ν•˜λ‚˜ 이상 μƒμ„±λ˜λŠ” 것을 λ°©μ§€ν•œλ‹€. 2. Strat..
[Unity] Mathf.Lerp() ν•¨μˆ˜
Β·
πŸ“ Game/✏ Unity
Lerp 1. κ°œλ… μ„ ν˜• 보간(Linear Interpolation)은 두 점(a, b) μ‚¬μ΄μ˜ κ°’(c)을 κ΅¬ν•˜κΈ° μœ„ν•΄ 두 점을 μ—°κ²°ν•œ 직선을 λ§Œλ“€μ–΄ 사이 κ°’(t)을 κ³„μ‚°ν•˜λŠ” 방법이닀. Mathf.Lerp(float a, float b, float t) μ—¬κΈ°μ„œ tλŠ” percet(0 ~ 1)의 κ°œλ…μ΄κΈ° λ•Œλ¬Έμ— t = 0이면 a, t = 1이면 b와 κ°™λ‹€. 2. μœ λ‹ˆν‹° ν™œμš© 1) λΆ€λ“œλŸ¬μš΄ μ›€μ§μž„ λΆ€λ“œλŸ¬μš΄ μ›€μ§μž„μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•΄ Update()μ—μ„œ 두 점 μ‚¬μ΄μ˜ ꡬ간을 μ§€μ†μ μœΌλ‘œ μ΄λ™μ‹œμΌœ ν™œμš©ν•  수 μžˆλ‹€. Update() ν•¨μˆ˜κ°€ ν˜ΈμΆœλ˜λŠ” 맀 ν”„λ ˆμž„λ§ˆλ‹€ μœ„μΉ˜λŠ” 계속 움직일 것이고 λͺ©ν‘œ 지점에 κ·Όμ ‘ν• μˆ˜λ‘ λ”μš± λΆ€λ“œλŸ¬μš΄ μ›€μ§μž„μ„ λ‚˜νƒ€λ‚΄κ²Œ λœλ‹€. void Update() { a = Mathf.Lerp(a, b, 0...