πŸ“ Game

    [Unity] 에셋 λŸ°νƒ€μž„ λ‘œλ“œ(λ¦¬μ†ŒμŠ€ 폴더, 에셋 λ²ˆλ“€, μ–΄λ“œλ ˆμ„œλΈ” 에셋)

    [Unity] 에셋 λŸ°νƒ€μž„ λ‘œλ“œ(λ¦¬μ†ŒμŠ€ 폴더, 에셋 λ²ˆλ“€, μ–΄λ“œλ ˆμ„œλΈ” 에셋)

    μœ λ‹ˆν‹° λ‚΄ 에셋 λŸ°νƒ€μž„ λ‘œλ“œλŠ” λ¦¬μ†ŒμŠ€ 폴더 μ‚¬μš©μ—μ„œ 에셋 λ²ˆλ“€, μ–΄λ“œλ ˆμ„œλΈ” 에셋 λ°©μ‹μœΌλ‘œ λ°œμ „ν•΄κ°€κ³  μžˆλ‹€. λ¦¬μ†ŒμŠ€ 폴더 λ¦¬μ†ŒμŠ€ ν΄λ”λŠ” μœ λ‹ˆν‹°μ—μ„œ μ œκ³΅ν•˜λŠ” λ¦¬μ†ŒμŠ€ λ‘œλ“œ ν΄λ”λ‘œ λ¦¬μ†ŒμŠ€ 폴더 μ•ˆ 파일의 경둜둜 μ ‘κ·Όν•˜μ—¬ μ‚¬μš©ν•˜λŠ” 방식이닀. Resources.Load("파일 경둜") μ‚¬μš©ν•˜κΈ°μ— νŽΈλ¦¬ν•˜λ‹€λŠ” μž₯점이 μžˆμ§€λ§Œ, 그만큼 단점도 λ§Žμ•„ μœ λ‹ˆν‹°μ—μ„œλ„ ꢌμž₯ν•˜μ§€ μ•ŠλŠ” 방법이닀. λΉŒλ“œ μ‹œ ν•¨κ»˜ λ¬Άμ΄λ―€λ‘œ λΉŒλ“œ μ‚¬μ΄μ¦ˆκ°€ 컀져 μ•± μ‹œμž‘ μ‹œκ°„μ΄ 길어진닀. 에셋 이름을 톡해 λ‘œλ“œν•˜λ―€λ‘œ 에셋 이름 변경이 μ–΄λ ΅λ‹€. 에셋 λ²ˆλ“€(Asset Bundle) 에셋 λ²ˆλ“€μ€ 에셋듀을 ν•˜λ‚˜λ‘œ λ¬Άμ–΄ μ••μΆ• νŒŒμΌμ„ μƒμ„±ν•˜λŠ” κ°œλ…μœΌλ‘œ μƒμ„±λœ 에셋 λ²ˆλ“€μ€ λ„€νŠΈμ›Œν¬λ₯Ό 톡해 λ°°ν¬ν•˜κ³  λŸ°νƒ€μž„μ— λ‘œλ“œν•˜μ—¬ μ‚¬μš©λœλ‹€. λΉŒλ“œμ— ν¬ν•¨λ˜μ§€ μ•ŠμœΌλ―€λ‘œ 초기 μΈμŠ€ν†¨ μ‚¬μ΄μ¦ˆ..

    [Unity] μŠ€ν¬λ¦½ν„°λΈ” 였브젝트(Scriptable Object)

    [Unity] μŠ€ν¬λ¦½ν„°λΈ” 였브젝트(Scriptable Object)

    μŠ€ν¬λ¦½ν„°λΈ” 였브젝트(Scriptable Object) 1. μ •μ˜ ScriptableObjectλŠ” 클래슀 μΈμŠ€ν„΄μŠ€μ™€λŠ” λ³„λ„λ‘œ λŒ€λŸ‰μ˜ 데이터λ₯Ό μ €μž₯ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” 데이터 μ»¨ν…Œμ΄λ„ˆμ΄λ‹€. μ£Όμš” μ‚¬μš© 사둀 쀑 ν•˜λ‚˜λŠ” κ°’μ˜ 사본이 μƒμ„±λ˜λŠ” 것을 λ°©μ§€ν•˜μ—¬ ν”„λ‘œμ νŠΈμ˜ λ©”λͺ¨λ¦¬ μ‚¬μš©μ„ μ€„μ΄λŠ” 것이닀. μ΄λŠ” μ—°κ²°λœ MonoBehaviour μŠ€ν¬λ¦½νŠΈμ— λ³€κ²½λ˜μ§€ μ•ŠλŠ” 데이터λ₯Ό μ €μž₯ν•˜λŠ” ν”„λ¦¬νŒΉμ΄ μžˆλŠ” 경우 μœ μš©ν•˜λ‹€. μ΄λŸ¬ν•œ ν”„λ¦¬νŒΉμ„ μΈμŠ€ν„΄μŠ€ν™”ν•  λ•Œλ§ˆλ‹€ ν•΄λ‹Ή λ°μ΄ν„°μ˜ 자체 사본이 μƒμ„±λ˜κ²Œ λ˜λŠ”λ°, 이 방식 λŒ€μ‹  ScriptableObjectλ₯Ό μ΄μš©ν•˜μ—¬ 데이터λ₯Ό μ €μž₯ν•˜λ©΄ λͺ¨λ“  ν”„λ¦¬νŒΉμ˜ 레퍼런슀λ₯Ό 톡해 μ•‘μ„ΈμŠ€ ν•  수 μžˆλ‹€. 즉, λ©”λͺ¨λ¦¬μ— 데이터 사본을 ν•˜λ‚˜λ§Œ μ €μž₯ν•˜κ²Œ λœλ‹€. ν”„λ‘œμ νŠΈλ₯Ό λΉŒλ“œν•˜κΈ° μ „ μœ λ‹ˆν‹° μ—λ””ν„°μ—μ„œ μˆ˜μ • 및 ..

    [Unity] Layer와 Tag μ‚¬μš© 및 차이

    [Unity] Layer와 Tag μ‚¬μš© 및 차이

    Layer와 Tag μ‚¬μš© 및 μ°¨μ΄μœ λ‹ˆν‹°μ—μ„œ μ‚¬μš©ν•˜λŠ” κ²Œμž„ μ˜€λΈŒμ νŠΈλŠ” 각각의 이름이 μ‘΄μž¬ν•˜κ³  κ·Έ μ˜€λΈŒμ νŠΈλ“€μ„ λΆ„λ₯˜ν•˜κΈ° μœ„ν•΄ Tag와 Layerλ₯Ό μ‚¬μš©ν•œλ‹€. κ·Έλ ‡λ‹€λ©΄ 두  μš”μ†Œκ°€ μ–΄λ–»κ²Œ μ‚¬μš©λ˜κ³  무슨 차이가 μžˆλŠ”μ§€ μ•Œμ•„λ³΄μž. κ²Œμž„ 였브젝트λ₯Ό μ„ νƒν•œ ν›„ μΈμŠ€νŽ™ν„° μ°½μ—μ„œ 상단을 보면 Tag와 Layerλ₯Ό 찾을 수 μžˆλ‹€.  ν΄λ¦­ ν›„ 맨 μ•„λž˜ Add Tag λ˜λŠ” Add Layerλ₯Ό λ‹€μ‹œ ν΄λ¦­ν•˜λ©΄ Tags & Layers 창으둜 μ΄λ™λœλ‹€.  Tags & Layers 창에선 ν”„λ‘œμ νŠΈμ—μ„œ μ‚¬μš©λ˜λŠ” λͺ¨λ“  Tag와 Layer듀을 κ΄€λ¦¬ν•œλ‹€.기본으둜 μΆ”κ°€λœ Tag와 Layer 외에도 μƒˆλ‘œμš΄ 값을 μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œν•  수 μžˆλ‹€.  1. LayerLayerλŠ” μ˜€λΈŒμ νŠΈλ“€μ˜ 그룹을 λ§Œλ“€κ³  κ΄€λ¦¬ν•˜λŠ” μš©λ„λ‘œ μ‚¬μš©ν•œλ‹€.κ²Œμž„ 였브젝트의 κΈ°λ³Έ 레..

    [Unity] Inspector Attribute

    [Unity] Inspector Attribute

    Inspector Attribute 슀크립트의 λ³€μˆ˜κ°€ λ§Žμ•„μ§ˆμˆ˜λ‘ μΈμŠ€νŽ™ν„°μ—μ„œ ν•œλˆˆμ— μ•Œμ•„λ³΄κΈ°κ°€ μ–΄λ €μ›Œμ§„λ‹€. μΈμŠ€νŽ™ν„°λ₯Ό κΉ”λ”ν•˜κ²Œ 정리할 수 μžˆλŠ” λͺ‡ 가지 속성듀에 λŒ€ν•΄ μ•Œμ•„λ³΄μž. 1. [Header (string)] μΈμŠ€νŽ™ν„° λ‚΄ 타이틀을 달 수 μžˆλŠ” 속성이닀. 2. [Space (float)] ν•„λ“œ 사이에 여백을 μ£ΌλŠ” 속성이닀. 3. [Range (float, float)] λ³€μˆ˜ 값을 μŠ¬λΌμ΄λ” ν˜•μ‹μœΌλ‘œ ν‘œμ‹œν•˜λŠ” 속성이닀. 4. [Multiline (int)] λ¬Έμžμ—΄μ„ μž‘μ„±ν•˜κΈ° νŽΈν•˜λ„λ‘ 라인의 수λ₯Ό λŠ˜λ €μ£ΌλŠ” 속성이닀. 5. [TextArea (int, int)] Multilineκ³Ό λ™μΌν•œ μ†μ„±μœΌλ‘œ 차이점은 μ΅œμ†Œ 크기와 μ΅œλŒ€ 크기λ₯Ό μ„€μ •ν•  수 μžˆλ‹€. 6. [SerializeField] private, prot..

    [Unity] 생λͺ… μ£ΌκΈ°(Life Cycle)

    [Unity] 생λͺ… μ£ΌκΈ°(Life Cycle)

    생λͺ… μ£ΌκΈ°(Life Cycle) μœ λ‹ˆν‹° 슀크립트의 λŒ€λΆ€λΆ„μ€ Monobehaviour 클래슀λ₯Ό 상속받아 λ§Œλ“€μ–΄μ§„λ‹€. 이 클래슀λ₯Ό 상속받은 μ˜€λΈŒμ νŠΈλŠ” Scene에 μžˆλŠ” λ™μ•ˆ μ—”μ§„μ—μ„œ μΌμ •ν•œ 흐름에 따라 μžλ™μœΌλ‘œ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λŠ”λ°, 이 νŒ¨ν„΄μ˜ 흐름을 생λͺ… μ£ΌκΈ°(Life Cycle)라 λΆ€λ₯Έλ‹€. 전체 흐름 전체적인 흐름은 μ•„λž˜ 곡식 μ‚¬μ΄νŠΈλ₯Ό 보면 λ˜λŠ”λ°, λ„ˆλ¬΄ λ³΅μž‘ν•˜κ³  λ§ŽμœΌλ‹ˆ 자주 μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜λ“€λ§Œ 정리할 것이닀. https://docs.unity3d.com/kr/530/Manual/ExecutionOrder.html μœ λ‹ˆν‹° - 맀뉴얼: 이벀트 ν•¨μˆ˜μ˜ μ‹€ν–‰ μˆœμ„œ μžλ™ λ©”λͺ¨λ¦¬ 관리λ₯Ό μ΄ν•΄ν•˜κΈ° 이벀트 ν•¨μˆ˜μ˜ μ‹€ν–‰ μˆœμ„œ Unity μŠ€ν¬λ¦½νŒ…μ‹œ, 미리 μ •μ˜λœ μˆœμ„œλŒ€λ‘œ μ‹€ν–‰λ˜λŠ” λ§Žμ€ 이벀트 ν•¨μˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜μ—μ„œλŠ”, μ‹€..

    λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈ

    λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈ

    λ Œλ”λ§ νŒŒμ΄ν”„λΌμΈ 3D 세계에 λŒ€ν•œ κΈ°ν•˜ν•™μ  ν‘œν˜„κ³Ό 이 세계λ₯Ό λ°”λΌλ³΄λŠ” 관점을 μ •μ˜ν•˜λŠ” 가상 카메라λ₯Ό μ΄μš©ν•΄ 2D 이미지λ₯Ό λ§Œλ“€μ–΄λ‚΄λŠ” 과정이닀. 1) 3D λͺ¨λΈ ꡬ좕 (둜컬 슀페이슀) λͺ¨λΈλ§ 된 파일의 정보λ₯Ό 뢈러였고 둜컬 μ’Œν‘œκ³„λ₯Ό 톡해 3차원 λͺ¨λΈμ˜ 정점듀을 κ΅¬μΆ•ν•˜λŠ” 단계이닀. 둜컬(λͺ¨λΈ) μ’Œν‘œκ³„λŠ” λͺ¨λΈ ν•˜λ‚˜μ˜ 고유 μ’Œν‘œκ³„λ‘œ λͺ¨λΈ 뷰어와 같이 단일 개체λ₯Ό ν‘œν˜„ν•œλ‹€. 2) 가상곡간 배치 (μ›”λ“œ 슀페이슀) 뢈러온 3D λͺ¨λΈμ„ μ›”λ“œ μ’Œν‘œκ³„λ‘œ λ³€ν™˜ν•˜λŠ” 단계이닀. 둜컬 슀페이슀의 κ°œμ²΄λ“€μ„ μ›”λ“œ μ’Œν‘œκ³„λ‘œ λ³€ν™˜ν•˜λŠ”λ° 이동, νšŒμ „, 크기 λ³€ν™˜μ„ μ‘°ν•©ν•˜μ—¬ λ§Œλ“€μ–΄μ§„λ‹€. 3) 정점 λ‹¨μœ„μ˜ 음영 계산 정점 쉐이더λ₯Ό 톡해 각 μ λ“€μ˜ 음영(그림자)을 μ²˜λ¦¬ν•˜λŠ” 단계이닀. 정점 μ‰μ΄λ”λŠ” μ •μ μ˜ μœ„μΉ˜μ— λŒ€ν•œ 정보λ₯Ό μž…λ ₯으둜 λ°›μ•„ ν™”..