Skip to content

๐Ÿ˜Š ๊ตฌํ•ด์ค˜ ์นœ๊ตฌ๋“ค - Unity Team Project

Notifications You must be signed in to change notification settings

Defense-Hub/ProjectDH_Public

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

17 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

coding

โœ‹ Help Me Guardians!

(Asset์„ ์ œ์™ธํ•œ ์†Œ์Šค ์ฝ”๋“œ๋งŒ ์˜ฌ๋ ค๋†“์€ Repository ์ž…๋‹ˆ๋‹ค)



๐Ÿ™‹โ€โ™‚๏ธ ํŒ€ ์†Œ๊ฐœ

Team ProjectDH

Members ๋ฐ•ํ˜„ํ˜ธ ์œค์„ธ๋‚˜ ์ •์€์ง€ ์ง€์Šน๋„

Stack Unity, C#

Develop 2024.06 ~ 2024.08

itch.io itch.io



๐Ÿงพ ๋ชฉ์ฐจ

๊ฒŒ์ž„ ๊ฐœ์š”
๊ฒŒ์ž„ ์†Œ๊ฐœ
์ฃผ์š” ์‚ฌ์šฉ ๊ธฐ์ˆ 
๊ฐœ๋ฐœ ์ง„ํ–‰
๊ฐœ๋ฐœ ๊ฒฐ๊ณผ
ํ”„๋กœ์ ํŠธ ๊ฐœ์„ 
ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…



๐Ÿ˜ƒ ๊ฒŒ์ž„ ๊ฐœ์š”

Genre 3D ๋””ํŽœ์Šค ๊ฒŒ์ž„

Description ๋‹ค์–‘ํ•œ ์œ ๋‹›์„ ์†Œํ™˜ํ•˜๊ณ  ์กฐํ•ฉํ•˜์—ฌ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ํŠน์„ฑ์„ ๊ฐ€์ง„ ๋ณด์Šค๋“ค์„ ๋ฌผ๋ฆฌ์น˜๋Š” ๊ฒŒ์ž„์ž…๋‹ˆ๋‹ค โš”๏ธ



๐Ÿ’ ๊ฒŒ์ž„ ์†Œ๊ฐœ

coding

๐Ÿ“ฝ๏ธ ๊ฒŒ์ž„ ์˜์ƒ

โฌ‡ Youtube Link โฌ‡
Video Label



๐Ÿ›  ์ฃผ์š” ์‚ฌ์šฉ ๊ธฐ์ˆ 

coding


๐Ÿงพ ๊ฐœ๋ฐœ ์ง„ํ–‰

๐Ÿ›  FSM

๐Ÿ’ก ์‚ฌ์šฉ ์ด์œ 

  • ์œ ๋‹›๊ณผ Enemy์˜ ์ƒํƒœ๋ฅผ ์œ ๊ธฐ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•จ

๐Ÿ“Œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

  • ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉ
coding

๐Ÿ›  Custom Editor Tool

๐Ÿ’ก ์‚ฌ์šฉ ์ด์œ 

  • ์œ ๋‹› ํ˜น์€ ์ ์„ ํ…Œ์ŠคํŠธ ํ•˜๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ ํŽธ์˜์„ฑ์„ ์œ„ํ•œ ์ปค์Šคํ…€ ํˆด ๊ฐœ๋ฐœ

๐Ÿ“Œ ์‚ฌ์šฉ์ฒ˜

ํŠน์ • ์œ ๋‹› ์†Œํ™˜
coding

ํŠน์ • ๋ณด์Šค ์†Œํ™˜
coding

์”ฌ ์ „ํ™˜
coding

์œ ๋‹› ์Šคํ…Ÿ ์กฐ์ ˆ
coding


๐Ÿ›  Addressable

๐Ÿ’ก ์‚ฌ์šฉ ์ด์œ 

  • ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ฑ๊ณผ ์œ ์—ฐํ•œ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ

๐Ÿ“Œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•

1. IResourceLocation์œผ๋กœ ์–ด๋“œ๋ ˆ์„œ๋ธ” ๊ทธ๋ฃน์— ์ €์žฅ๋œ ๋ฆฌ์†Œ์Šค๋“ค์˜ ๊ฒฝ๋กœ๋ฅผ ์ €์žฅ

    public Dictionary<int, IList<IResourceLocation>> LocationDict { get;  private set; }    

2. ๊ฐ๊ฐ์˜ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์œผ๋กœ ์ •์˜๋œ Enum ํƒ€์ž… ์ˆœ์„œ๋Œ€๋กœ IResourceLocation ๋ฆฌ์ŠคํŠธ ์žฌ ์ •๋ ฌ

coding

3. IResourceLocation ์ •๋ณด๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์–ด๋“œ๋ ˆ์„œ๋ธ”์— ์ €์žฅ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋“œ

coding

๐Ÿ›  Batching

๐Ÿ’ก ์„ค๋ช…

  • Batch ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด Static Batching, Sprite Atlas, Terrain To Mesh ์‚ฌ์šฉ
coding

๐Ÿ›  UI ๋™์  ์ƒ์„ฑ

๐Ÿ’ก ์‚ฌ์šฉ ์ด์œ 

  • ๋‹ค์–‘ํ•œ ๊ฒŒ์ž„ ์ƒํ™ฉ์— ๋”ฐ๋ฅธ UI ๊ด€๋ฆฌ
  • ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ ์ตœ์ ํ™”
  • ์œ ์—ฐํ•œ ํ™•์žฅ์„ฑ

โ˜€๏ธ ํ”„๋กœ์ ํŠธ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

UIManager

  • UI์˜ ์ƒ์„ฑ, ๊ด€๋ฆฌ, ์ œ๊ฑฐ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ์ค‘์‹ฌ ์—ญํ• 
  • Singleton ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ์ „์ฒด์—์„œ ์œ ์ผํ•˜๊ฒŒ ์กด์žฌํ•˜๋Š” UI ๋งค๋‹ˆ์ € ์ธ์Šคํ„ด์Šค๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ UI์˜ ์ค‘์•™ ์ง‘์ค‘์‹ ๊ด€๋ฆฌ๋ฅผ ๊ตฌํ˜„

ShowPopupUI<T> ๋ฉ”์„œ๋“œ

  • ํŠน์ • UI ํŒ์—…์„ ๋น„๋™๊ธฐ๋กœ ์ƒ์„ฑ
  • ResourceManager๋ฅผ ํ†ตํ•ด ํ•ด๋‹น UI ํƒ€์ž…์˜ ๊ฒŒ์ž„ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ , ์ด๋ฅผ UIManager์˜ Root ์˜ค๋ธŒ์ ํŠธ ํ•˜์œ„์— ๋ฐฐ์น˜
  • ์ œ๋„ค๋ฆญ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํŒ์—… UI๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์ƒ์„ฑ **

SetCanvas ๋ฉ”์„œ๋“œ

  • ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋œ UI ์˜ค๋ธŒ์ ํŠธ๊ฐ€ Canvas๋ฅผ ํฌํ•จํ•˜๋„๋ก ์„ค์ •ํ•˜๋Š” ์—ญํ• 
  • Canvas์˜ renderMode๋ฅผ ScreenSpaceOverlay๋กœ ์„ค์ •ํ•˜์—ฌ UI๊ฐ€ ํ™”๋ฉด์— ํ•ญ์ƒ ์˜ค๋ฒ„๋ ˆ์ด ๋˜๋„๋ก ํ•˜๋ฉฐ, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ •๋ ฌ ์ˆœ์„œ๋ฅผ ์ง€์ •ํ•˜์—ฌ UI๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ Œ๋”๋ง๋˜๋„๋ก ํ•จ

UI_Base ํด๋ž˜์Šค

  • UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋ณธ ํด๋ž˜์Šค
  • ๋‹ค์–‘ํ•œ UI ์š”์†Œ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด, UI ์š”์†Œ๋ฅผ Dictionary์— ์ €์žฅํ•˜๊ณ , ํ•„์š”ํ•  ๋•Œ ํƒ€์ž…๊ณผ ์ธ๋ฑ์Šค๋ฅผ ํ†ตํ•ด ํ•ด๋‹น UI ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ด
  • UI ์š”์†Œ์˜ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ ํฌํ•จ

UI_EventHandler ํด๋ž˜์Šค

  • UI์˜ ํด๋ฆญ ๋ฐ ๋“œ๋ž˜๊ทธ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค
  • ์ด ํด๋ž˜์Šค๋Š” Unity์˜ ์ด๋ฒคํŠธ ์‹œ์Šคํ…œ๊ณผ ํ†ตํ•ฉ๋˜์–ด, ๋‹ค์–‘ํ•œ UI ์ƒํ˜ธ์ž‘์šฉ์„ ๊ด€๋ฆฌ

๐Ÿ›  Unity Google Sheet

๐Ÿ’ก ์‚ฌ์šฉ ์ด์œ 

coding
- Goolgle Spread Sheet๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ, Collection, ์ปค์Šคํ…€ ํด๋ž˜์Šค๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์–ด, ํšจ์œจ์ ์ด๊ณ  ์ง๊ด€์ ์ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ํ˜‘์—…์— ์šฉ์ดํ•˜์—ฌ ์‚ฌ์šฉ

๐Ÿ“Œ ๊ตฌํ˜„ ๋‚ด์šฉ

coding
  • ๊ฒŒ์ž„์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ์‹œํŠธ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€ ๋ฐ ์‚ญ์ œ์—๋„ ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์„ค๊ณ„๋ฅผ ์ค‘์ ์œผ๋กœ ๊ฐœ๋ฐœ
  • Unity Google Sheet๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹œํŠธ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ JSON ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์ด๋ฅผ ๋กœ์ปฌ์—์„œ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„

๐Ÿ›  Unity Gaming Service Analytics

๐Ÿ’ก ์‚ฌ์šฉ ์ด์œ 

  • User Test ์—์„œ ์‹ค์ œ ํ”Œ๋ ˆ์ด ํ™˜๊ฒฝ์˜ ์ด๋ฒคํŠธ๋ฅผ ์ „์†ก ๋ฐ›์•„ ์œ ์ € ๋ฐ์ดํ„ฐ๋ฅผ ํ™•๋ณด, ๊ฐœ์„  ๋ฐฉํ–ฅ์„ ์ˆ˜๋ฆฝํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ

๐Ÿ“Œ ์‚ฌ์šฉ์ฒ˜

coding
โฌ†๏ธŽ ์œ ์ €๋“ค์˜ ์ดํƒˆ ์‹œ์  Data

SQL ํƒ์ƒ‰๊ธฐ๋กœ ๊ฒŒ์ž„ ์ข…๋ฃŒ ์‹œ ์–ด๋Š ์Šคํ…Œ์ด์ง€๊นŒ์ง€ ํด๋ฆฌ์–ด ํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ RawData ๋ถ„์„

  • ๊ฒŒ์ž„ ์ค‘๊ฐ„์— ์ดํƒˆํ•˜๋Š” ์œ ์ €๋“ค์ด ๋งŽ๋‹ค๋Š” ์œ ์ € ๋ฐ์ดํ„ฐ ํ™•๋ณด
  • ์ค‘๊ฐ„์— ๋น ์ ธ๋‚˜๊ฐ€๊ฑฐ๋‚˜ ๋๊นŒ์ง€ ํด๋ฆฌ์–ด ํ•˜๊ฑฐ๋‚˜ ํ•˜๋Š” ์œ ์ € ์Šคํƒ€์ผ ํŒŒ์•…


๐Ÿ“‹ ๊ฐœ๋ฐœ ๊ฒฐ๊ณผ

์œ ์ €ํ…Œ์ŠคํŠธ: 8์›” 8์ผ ~ 8์›” 11์ผ (4์ผ๊ฐ„)

coding


โšก ํ”„๋กœ์ ํŠธ ๊ฐœ์„ 

๐Ÿšจ ๋ฒ„๊ทธ ํ”ฝ์Šค

coding

โœ… ๊ฐœ์„  ์‚ฌํ•ญ

Map์ด ๊ฐ€๋“ ์ฐผ์„ ๋•Œ ์†Œํ™˜๋ฒ„ํŠผ ๋ง‰๊ธฐ

  • ์†Œํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ผ์ด ์—†์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์†Œํ™˜ ๋ฒ„ํŠผ์ด ํ™œ์„ฑํ™”๋˜์–ด ๊ณจ๋“œ๊ฐ€ ์ฐจ๊ฐ๋˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
coding
  • ์†Œํ™˜ ๊ฐ€๋Šฅํ•œ ํƒ€์ผ์ด ์—†๋‹ค๋ฉด ๋น„ํ™œ์„ฑํ™” ๋˜๋„๋ก ์ˆ˜์ •
coding
SkillUI ๊ฐ€์‹œ์„ฑ ๊ฐœ์„ 

๐Ÿ’ก ๊ธฐ์กด Skill UI

  • ์Šคํ‚ฌ ์ „ํ™˜์ด ๋˜๋Š”์ง€ ๋˜์ง€ ์•Š๋Š”์ง€ ๋ชจํ˜ธํ–ˆ๋‹ค.
coding

๐Ÿ’ก ์‹ ๊ทœ Skill UI

  • ์ง๊ด€์ ์œผ๋กœ ์ขŒ์šฐ ์ด๋™์„ ํ‘œ์‹œ
coding
๋ฐฐ์† UI ๊ฐœ์„ 

๐Ÿ’ก ๊ธฐ์กด ๋ฐฐ์† UI

  • ์„ค์ •์ฐฝ ์•ˆ์— ์กด์žฌํ•˜์—ฌ ์œ ์ €๊ฐ€ ๋ฐฐ์† UI์˜ ์กด์žฌ๋ฅผ ์•Œ๊ธฐ ํž˜๋“ค์—ˆ์Œ

๐Ÿ’ก ํ˜„์žฌ ๋ฐฐ์† UI

  • ๊ฒŒ์ž„ ํ™”๋ฉด ๋‚ด์—์„œ ๋ฐ”๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ€์‹œ์„ฑ์„ ๋†’์˜€๋‹ค.
coding
๋ณด์Šค ๋“ฑ์žฅ Indicator

๐Ÿ’ก ๊ธฐ์กด ๋ณด์Šค ์Šคํ…Œ์ด์ง€

  • ๋ณด์Šค ๋“ฑ์žฅ์ด๋‚˜, ๋ณด์Šค ์Šคํ‚ฌ์— ๋Œ€ํ•œ Indicator๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„ ์œ ์ €๊ฐ€ ๋ณด์Šค์Šคํ…Œ์ด์ง€๋ฅผ ์ธ์‹ํ•˜๊ธฐ ์–ด๋ ค์› ์Œ.

๐Ÿ’ก ๋ณด์Šค Indicator ์ถ”๊ฐ€

  • Indicator๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์œ ์ € ํŽธ์˜์„ฑ์„ ๋†’์˜€๋‹ค.
coding
coding


โ— ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

๐Ÿ‘ฟ ์–ด๋“œ๋ ˆ์„œ๋ธ” ์ •๋ ฌ ๋ฌธ์ œ

๐Ÿšจ ๋ฌธ์ œ ์ƒํ™ฉ

  • ์–ด๋“œ๋ ˆ์„œ๋ธ”์— ๋“ฑ๋ก๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋กœ๋”ฉํ•  ๋•Œ, ๋กœ๋“œ ์ˆœ์„œ๊ฐ€ ๋งž์ง€ ์•Š์•„ ์›ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ๋กœ๋“œ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ

๐Ÿ“Œ ๋ฌธ์ œ ๋ถ„์„

  • ์–ด๋“œ๋ ˆ์„œ๋ธ” ๊ทธ๋ฃน์— ๋ฆฌ์†Œ์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ, ๋“ฑ๋ก๋œ ๋ฆฌ์†Œ์Šค๋“ค์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Œ.

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • IResourceLocation ๋ฆฌ์ŠคํŠธ๋ฅผ ์ €์žฅํ•œ ํ›„, Enum์— ์ •์˜๋œ ์ด๋ฆ„ ์ˆœ์„œ์— ๋งž๊ฒŒ ์ •๋ ฌ์‹œ์ผœ์ฃผ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐ
coding
๐Ÿ‘ฟ ์œ ๋‹› ์ธ๋„ค์ผ ์Šคํ”„๋ผ์ดํŠธ ๋ฐฐ์นญ

๐Ÿšจ ๋ฌธ์ œ ์ƒํ™ฉ

  • ์œ ๋‹› ์ธ๋„ค์ผ ์Šคํ”„๋ผ์ดํŠธ๊ฐ€ ์ œ๋Œ€๋กœ ๋ฐฐ์น˜๋˜์ง€ ์•Š์•„, ๋ฏธ์…˜ ์ฐฝ์„ ์—ด ๋•Œ ๋ฐฐ์น˜๊ฐ€ ์•ฝ 40 ์ •๋„ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒ
coding

๐Ÿ“Œ ๋ฌธ์ œ ๋ถ„์„

  • ์œ ๋‹› ์ธ๋„ค์ผ ์Šคํ”„๋ผ์ดํŠธ๊ฐ€ ๊ฐ๊ฐ ๋…๋ฆฝ๋œ Texture2D๋กœ ์‚ฌ์šฉ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์นญ์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์Œ

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • ์ธ๋„ค์ผ๋“ค์„ Sprite Atlas์— ์ €์žฅํ•œ ํ›„, ์–ด๋“œ๋ ˆ์„œ๋ธ”์—์„œ ๋กœ๋“œํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐฐ์นญ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ
  • ์ถ”๊ฐ€์ ์œผ๋กœ, Canvas ๋ฐฐ์น˜๊ฐ€ ๋†’๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ UI์— ์‚ฌ์šฉ๋˜๋Š” ์Šคํ”„๋ผ์ดํŠธ๋“ค๋„ Sprite Atlas์— ์ €์žฅํ•œ ํ›„ ์‚ฌ์šฉ
coding
๐Ÿ‘ฟ ๋Ÿฐํƒ€์ž„ ์ค‘ Static ๋ฐฐ์นญ ์ ์šฉ์•ˆ๋˜๋Š” ๋ฌธ์ œ

๐Ÿšจ ๋ฌธ์ œ ์ƒํ™ฉ

  • ์ธ์ŠคํŽ™ํ„ฐ ์ฐฝ์—์„œ Static ๋ฐฐ์นญ์„ ์ ์šฉํ•˜๋ ค ํ–ˆ์ง€๋งŒ, ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ๋Ÿฐํƒ€์ž„์— ์–ด๋“œ๋ ˆ์„œ๋ธ”์„ ์‚ฌ์šฉํ•ด ๋งต์„ ๋กœ๋“œํ•˜๊ธฐ ๋•Œ๋ฌธ์— Static ๋ฐฐ์นญ์ด ์ ์šฉ๋˜์ง€ ์•Š์Œ
coding

๐Ÿ“Œ ๋ฌธ์ œ ๋ถ„์„

  • ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ๋–„, ์œ ๋‹ˆํ‹ฐ๊ฐ€ ์ž๋™์œผ๋กœ Static ๋ฐฐ์นญ์„ ์ ์šฉ์‹œ์ผœ์ฃผ์ง€๋งŒ ๋Ÿฐํƒ€์ž„ ์ค‘์—๋Š” ์ ์šฉ ์‹œ์ผœ์ฃผ์ง€ ์•Š์Œ

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • CombineMeshes๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ™์€ Material์„ ๊ฐ€์ง„ Mesh๋“ค์„ ๋ฌถ์–ด ๋ Œ๋”๋งํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฌธ์ œ ํ•ด๊ฒฐ
  • ์ถ”๊ฐ€์ ์œผ๋กœ Terrian์€ ๋Ÿฐํƒ€์ž„ ์ค‘ ๋ณ€ํ™”ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ Mesh๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ Batch ์ตœ์ ํ™” ์ง„ํ–‰
coding
๐Ÿ‘ฟ ๊ฐœ๋ฐœ ๋‚ด์—ญ Test ๋ฌธ์ œ

๐Ÿšจ ๋ฌธ์ œ ์ƒํ™ฉ

  • ๊ฐœ๋ฐœ์ด ์ง„ํ–‰๋จ์— ๋”ฐ๋ผ ์›ํ•˜๋Š” Unit, Enemy๋ฅผ ์ œ์ž‘ํ•˜๊ณ  Testํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค.

๐Ÿ“Œ ๋ฌธ์ œ ๋ถ„์„

Unit

  • ๋žœ๋ค์œผ๋กœ ์†Œํ™˜๋˜๊ณ  ์ƒ์œ„ ์œ ๋‹›์„ ๋ฝ‘์•„ ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›ํ•˜๋Š” ์œ ๋‹›์„ ๋ฝ‘์•„ ์กฐํ•ฉํ•  ๋•Œ๊นŒ์ง€ ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•ด์•ผํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ๋‹ค.

Boss

  • ์Šคํ…Œ์ด์ง€๊ฐ€ ์ง„ํ–‰๋จ์— ๋”ฐ๋ผ ํŠน์ • ์Šคํ…Œ์ด์ง€์—์„œ๋งŒ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์—, ๋งˆ์ง€๋ง‰ ์Šคํ…Œ์ด์ง€์˜ ๋ณด์Šค๋ฅผ ์ ๊ฒ€ํ•˜๊ธฐ ์œ„ํ•ด์„  ๋งˆ์ง€๋ง‰ ์Šคํ…Œ์ด์ง€๊นŒ์ง€ ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ด ํ•˜๋ฉด์„œ ํ…Œ์ŠคํŠธ ํ•ด์•ผ๋งŒ ํ–ˆ๋‹ค.

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

Unit ์†Œํ™˜ Tool ์ œ์ž‘

  • ์›ํ•˜๋Š” ์œ ๋‹›์„ ๋ฒ„ํŠผ์œผ๋กœ ์†Œํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” Tool์„ ์ œ์ž‘
coding

Boss ์†Œํ™˜ Inspector Tool ์ œ์ž‘

  • ์›ํ•˜๋Š” ์„ธํŒ…์œผ๋กœ ๋ณด์Šค๋ฅผ ์†Œํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” Tool์„ ์ œ์ž‘
  • boss ์†Œํ™˜์ด ๋…๋ฆฝ์ ์ด์ง€ ์•Š๊ณ , Stage์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์š”์†Œ๋“ค์ด ๋ฌถ์—ฌ ์žˆ์–ด editorWindow๊ฐ€ ์•„๋‹Œ editorInspector๋ฅผ ํ™œ์šฉํ•˜์—ฌ GameStart ์‹œ์— ์–ด๋–ค boss๋ฅผ ์†Œํ™˜ํ• ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ๋‹ค
coding
๐Ÿ‘ฟ ๊ฒŒ์ž„ ๋ฐฐ์†์ด ์ฃผ์‚ฌ์œจ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋Š” ํ˜„์ƒ

๐Ÿšจ ๋ฌธ์ œ ์ƒํ™ฉ

  • PC๋กœ ํ”Œ๋ ˆ์ดํ•  ๋•Œ, ๋ชจ๋‹ˆํ„ฐ์˜ ์ฃผ์‚ฌ์œจ์— ๋”ฐ๋ผ ๊ฒŒ์ž„ ๋ฐฐ์†์ด ๋‹ฌ๋ผ์ง€๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.
coding

๐Ÿ“Œ ๋ฌธ์ œ ๋ถ„์„

  • vSync CPU ์ž‘์—…๊ณผ GPU ์ž‘์—…๊ฐ„์˜ ๋™๊ธฐํ™”๋ฅผ ์‹œ์ผœ์ฃผ๋Š” ์˜ต์…˜๊ฐ€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด ๋ฐœ์ƒํ•œ ๋ฌธ์ œ์˜€๋‹ค.

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

QualitySettings.vSyncCount = 0;
  • ์œ„์˜ ์ฝ”๋“œ์™€ vSync๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.
๐Ÿ‘ฟ ๋ชฌ์Šคํ„ฐ Hp๋ฐ” ์ตœ์ ํ™”

๐Ÿšจ ๋ฌธ์ œ ์ƒํ™ฉ

  • ๋ชฌ์Šคํ„ฐ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ๋“œ๋กœ์šฐ ์ฝœ์ด ์ฆ๊ฐ€ํ•˜๋Š” ํ˜„์ƒ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.

๐Ÿ“Œ ๋ฌธ์ œ ๋ถ„์„

  • ์ƒ์„ฑ๋˜๋Š” ๋ชฌ์Šคํ„ฐ๊ฐ€ ๊ฐ๊ฐ ์ž์‹ ์˜ World Space Canvas๋ฅผ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๋ชฌ์Šคํ„ฐ๊ฐ€ ๊ฐ€์ง„ ์บ”๋ฒ„์Šค์˜ ๊ฐœ์ˆ˜์— ๋”ฐ๋ผ ๋“œ๋กœ์šฐ ์ฝœ์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜์—ˆ๋‹ค.
coding coding

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  • HP๋ฐ” ์ด๋ฏธ์ง€๋ฅผ ์˜ค๋ธŒ์ ํŠธ ํ’€๋ง์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏธ๋ฆฌ ์ƒ์„ฑํ•ด๋‘๊ณ  Enemy๊ฐ€ ์Šคํฐ๋  ๋•Œ ๊ฐ๊ฐ์˜ Enemy์— ์ƒˆ๋กœ์šด Hp๋ฐ”๋ฅผ ํ• ๋‹นํ•ด์ฃผ์—ˆ๋‹ค.
  • ๊ทธ ๊ฒฐ๊ณผ, ๋ชจ๋“  Hp๋ฐ”๊ฐ€ ํ•˜๋‚˜์˜ ์บ”๋ฒ„์Šค์— ๊ทธ๋ ค์ง€๊ณ , ๋“œ๋กœ์šฐ ์ฝœ์ด 1๊ฐœ๋กœ ์ค„์–ด๋“ค์—ˆ๋‹ค.
coding
๐Ÿ‘ฟ ์‚ฌ์šด๋“œ ์Šฌ๋ผ์ด๋“œ ๋ฐ” ๊ฐ’ ์„ค์ • ์˜ค๋ฅ˜

๐Ÿšจ ๋ฌธ์ œ ์ƒํ™ฉ

  • ์Šฌ๋ผ์ด๋“œ ๋ฐ”์˜ value๊ฐ€ 0์ผ ๋•Œ, ์˜๋„ํ•œ ๋Œ€๋กœ ์†Œ๋ฆฌ๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค

๐Ÿ“Œ ๋ฌธ์ œ ๋ถ„์„

  • ์˜ค๋””์˜ค ๋ฏน์„œ์˜ ๋ฐ์‹œ๋ฒจ ๋ฒ”์œ„๋Š” -80dB์—์„œ 0dB๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค.
  • ๋”ฐ๋ผ์„œ ์Šฌ๋ผ์ด๋“œ ๋ฐ”์˜ value(0~1์‚ฌ์ด ๊ฐ’)๋ฅผ ๋ฐ์‹œ๋ฒจ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด Log10(volume) * 20 ๊ณต์‹์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ํ•˜์ง€๋งŒ ์Šฌ๋ผ์ด๋“œ ๋ฐ”์˜ value๊ฐ€ 0์ผ ๋•Œ, Log10(0)์€ ์ •์˜๋˜์ง€ ์•Š์•„ ์˜๋„ํ•œ ๋Œ€๋กœ ๊ฐ’์ด ์„ค์ •๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ์ด๋‹ค.

โœ… ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

// volume์€ 0.0001~1 ๊ฐ’์ด ๋“ค์–ด์˜ค๋„๋ก ๋ฐฉ์–ด์ฝ”๋“œ ์ž‘์„ฑ
if (volume < 0.0001f)
    volume = 0.0001f;
  • ์Šฌ๋ผ์ด๋“œ ๋ฐ”์˜ value๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ๋ฐ์‹œ๋ฒจ์„ -80dB๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด volume ๊ฐ’์„ ์ตœ์†Œ 0.0001f๋กœ ์„ค์ •ํ•ด์•ผ ํ•˜๋ฏ€, ์œ„์™€ ๊ฐ™์€ ๋ฐฉ์–ด์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์—ฌ ํ•ด๊ฒฐํ–ˆ๋‹ค.

About

๐Ÿ˜Š ๊ตฌํ•ด์ค˜ ์นœ๊ตฌ๋“ค - Unity Team Project

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages