ํฌ์ŠคํŠธ

๐ŸŒ” Unity ๋ฉ”๋ชจ

2024-04-09. 03:03
โ€˜2019-12-10-Unity-Public-SerializeField : ๐ŸŒ” ์œ ๋‹ˆํ‹ฐ _ ์ธ์ŠคํŽ™ํ„ฐ์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ Public, [SerializeField] ์†์„ฑ ๋ณ€์ˆ˜โ€™,
โ€˜2022-08-26-Unity-GUID : ๐ŸŒ” Unity GUID ๋ณด๋Š” ๋ฒ•โ€™,
โ€˜2023-01-06-OnParticleCollision-Not-Work : ๐ŸŒ” Unity OnParticleCollision ์ด ํ˜ธ์ถœ๋˜์ง€ ์•Š์„ ๋•Œโ€™,
โ€˜2023-02-15-Unity-NavMesh : ๐ŸŒ” Unity NavMeshโ€™,
โ€˜2023-02-24-Cannot-Perform-Upm-Operation : ๐ŸŒ” Unity โ€˜Cannot perform upm operation: EBUSY: resource busy or locked, openโ€™โ€™,
๊ธ€ ๊ณ„์Šน

๐Ÿ’ซ ํ‚ค์›Œ๋“œ


๐Ÿ’ซ ์ธ์ŠคํŽ™ํ„ฐ์—์„œ ๊ฐ’์„ ๋ณ€๊ฒฝํ•œ Public, [SerializeField] ์†์„ฑ ๋ณ€์ˆ˜


20191203225712.950590

์ ‘๊ทผ ์ œ์–ด์ž๊ฐ€ Public ์ด๊ฑฐ๋‚˜ [SerializeField] ์†์„ฑ์„ ์ค€ ๋ณ€์ˆ˜๋ฅผ ์ธ์ŠคํŽ™ํ„ฐ์—์„œ ์ˆ˜์ •ํ•œ ํ›„,
ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ [HideInInSpector] ์†์„ฑ์œผ๋กœ ๋ฐ”๊พธ๋”๋ผ๋„, ์ธ์ŠคํŽ™ํ„ฐ์—์„œ ์„ค์ •๋œ ๊ฐ’์ด ์ €์žฅ๋˜์–ด ๋‚จ์•„์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

๋ถ„๋ช… ์˜ค๋ฅ˜ ์—†์ด ๊ฒŒ์ž„ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•œ ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ˆ˜์ •ํ•œ ์‚ฌ์‹ค์„ ๋ฏธ์ฒ˜ ๋ชจ๋ฅด๊ณ  ๋„˜์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค๋ฉด,
์—๋””ํ„ฐ๊ฐ€ ์˜ค๋ฅ˜๋ผ๊ณ  ๋งํ•ด์ฃผ์ง€๋„ ์•Š๊ณ , ์ผ์ผ์ด ์ฐพ์•„๋ณด๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์‹ฌํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ’ซ GUID ๋ณด๋Š” ๋ฒ•


์ฐธ๊ณ 

.meta ํŒŒ์ผ ์—ด๋ฉด ๋‚˜์˜จ๋‹ค

๐Ÿ’ซ OnParticleCollision ์ด ํ˜ธ์ถœ๋˜์ง€ ์•Š์„ ๋•Œ


์ฐธ๊ณ 

  • ํŒŒํ‹ฐํด ์‹œ์Šคํ…œ์—์„œ Collision ์ด ์ผœ์ ธ์žˆ๋Š”์ง€ ํ™•์ธ
  • Collision ์—์„œ Type ์ด World ์ธ์ง€ ํ™•์ธ (๊ธฐ๋ณธ Plane)
  • โญ Collision ์—์„œ Send Collision Messages ๊ฐ€ ์ผœ์ ธ์žˆ๋Š”์ง€ ํ™•์ธ
  • Collision ์—์„œ Collision Quality ๊ฐ€ High ์ธ์ง€ ํ™•์ธ
  • Collision ์—์„œ Collision Quality / Collides With ์˜ ๋ ˆ์ด์–ด์— ๋‹ฟ๊ณ ์ž ํ•˜๋Š” ์˜ค๋ธŒ์ ํŠธ์˜ ๋ ˆ์ด์–ด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ

๐Ÿ’ซ NavMesh


์ฐธ๊ณ 

๐Ÿ’ซ NavMesh, ์—ฌ๋Ÿฌ ํฌ๊ธฐ์˜ Agent์— ๋Œ€ํ•œ NavMesh ๊ฐ๊ฐ Bake



๐Ÿซง ๋ฌธ์ œ : ํ•˜๋‚˜์˜ Agent Type๋งŒ Bake ๊ฐ€๋Šฅ

์—ฌ๋Ÿฌ ํฌ๊ธฐ์˜ Agent๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ,
๊ธฐ๋ณธ ๋‚ด์žฅ ๊ธฐ๋Šฅ์œผ๋กœ๋Š” ํ•œ ๋ฒˆ์— ํ•œ Agent Type์— ๋Œ€ํ•ด์„œ๋งŒ NavMesh๋ฅผ Bake ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

๋•Œ๋ฌธ์— NavMesh๋ฅผ Bakeํ–ˆ๋˜ Agent Type๊ณผ ๋‹ค๋ฅธ Agent Type์„ ๊ฐ€์ง„ Agent๋Š”,
ํ”Œ๋žซํผ์— ์ œ๋Œ€๋กœ ๋ฐฐ์น˜ํ–ˆ์Œ์—๋„ ์—๋Ÿฌ ๋กœ๊ทธ๋ฅผ ๋ฟœ์–ด๋ƒˆ๋‹ค. (Failed to create agent because it is not close enough to the NavMesh)
ํ”Œ๋žซํผ ์–ด๋Š ๊ณณ์—๋„ ํ•ด๋‹น Agent Type์— ๋Œ€ํ•œ NavMesh๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ด์— ์—ฌ๋Ÿฌ Agent Type์— ๋Œ€ํ•ด, NavMesh๋ฅผ โ€˜๊ฐ๊ฐโ€™ Bake ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ–ˆ๋‹ค.

๐Ÿซง ํ•ด๊ฒฐ : NavMeshSurface

NavMesh Building Components ์ค‘ NavMeshSurface ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ด์šฉํ•˜๋ฉด, ์—ฌ๋Ÿฌ Agent Type์— ๋Œ€ํ•ด NavMesh๋ฅผ โ€˜๊ฐ๊ฐโ€™ ๊ตฌ์›Œ๋‚ผ ์ˆ˜ ์žˆ๋‹ค !

๊ทธ๋Ÿฐ๋ฐ NavMesh Building Components๋Š” Unity 2021์— ๋‚ด์žฅ๋œ NavMesh์—๋Š” ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค.
NavMesh Building Components๋Š” AI Navigation ํŒจํ‚ค์ง€์˜ Experimental ๋ฒ„์ „์—์„œ๋งŒ ์ง€์›๋˜๊ณ  ์žˆ๋‹ค. (23-02-15 ๊ธฐ์ค€)
๋•Œ๋ฌธ์— ์ด ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ๋ฅผ ์‹œ์ผœ์ค˜์•ผ ํ•œ๋‹ค.

ํŒจํ‚ค์ง€ ์„ค์น˜๋Š” Unity NavMesh Building Components ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ–ˆ๋‹ค.
์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€, Unite Europe 2017 - Finding the path ๊ฐ•์—ฐ์„ ์ฐธ๊ณ ํ–ˆ๋‹ค.

๐Ÿ’ซ Cannot perform upm operation: EBUSY: resource busy or locked, open


Cannot perform upm operation: EBUSY: resource busy or locked, open
์œ ๋‹ˆํ‹ฐ ํŒจํ‚ค์ง€ ์„ค์น˜ ์‹œ๋„ ์‹œ ์œ„ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค.

IDE ๋„๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•œ๋‹ค.

๐Ÿ’ซ Dropdown, ์„ ํƒ์ง€ ์œ„์ชฝ์œผ๋กœ ๋‚˜์˜ค๊ฒŒ ํ•˜๋ ค๋ฉด


Template ์˜ค๋ธŒ์ ํŠธ, Pivot Y ๊ฐ’์„ ๊ธฐ์กด 1์—์„œ 0์œผ๋กœ ๋ณ€๊ฒฝ, Template ์œ„์น˜ ์กฐ์ •

๐Ÿ’ซ Scroll Rect, ํ‚ค๋ณด๋“œ (WASD, ๋ฐฉํ–ฅํ‚ค) ์ž…๋ ฅ ๋ฐฉ์ง€


Scroll Rect, Scroll Sensitivity ๊ธฐ์กด 1์—์„œ 0์œผ๋กœ ๋ณ€๊ฒฝ

๐Ÿ’ซ Scroll View, ์•„๋ž˜์—์„œ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๋ชฉ๋ก


Content ์˜ค๋ธŒ์ ํŠธ, Pivot Y ๊ฐ’์„ ๊ธฐ์กด 1์—์„œ 0์œผ๋กœ ๋ณ€๊ฒฝ

๐Ÿ’ซ Layout ์ƒˆ๋กœ๊ณ ์นจ


LayoutRebuilder.ForceRebuildLayoutImmediate(RectTransform)

๐Ÿ’ซ Animator Disable ๋ผ๋„ ์ƒํƒœ ์œ ์ง€


Animator.keepAnimatorContrillerStateOnDisable = true;
์ง๊ด€์ ์ธ ์ด๋ฆ„
์• ๋‹ˆ๋ฉ”์ดํ„ฐ ๊ธฐ๋Šฅ์ด๊ธฐ์—, ๋น„๋‹จ UI ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ผ๋ฐ˜ ์ž‘์—…์‹œ์—๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๐Ÿ’ซ ์‹œ๋„ค๋จธ์‹  ์—๋”ง ๋ชจ๋“œ์—์„œ ๋ฐ”๋กœ๋ฐ”๋กœ ์—…๋ฐ์ดํŠธ๊ฐ€ ์•ˆ๋จ


Cinemachine Brain ์—์„œ Update Method ๊ฐ€ Fixed Update ๋ฉด ๋ฐ”๋กœ๋ฐ”๋กœ ์•ˆ๋ฐ”๋€œ

๐Ÿ’ซ ์˜คํด๋ฃจ๋” Occluder, ์˜คํด๋ฃจ๋”” Occludee


์˜คํด๋ฃจ๋” Occluder : ์˜คํด๋ฃจ๋””๋ฅผ ๊ฐ€๋ฆฌ๋Š” ์˜ค๋ธŒ์ ํŠธ
์˜คํด๋ฃจ๋”” Occludee : ์˜คํด๋ฃจ๋”์— ์˜ํ•ด ๊ฐ€๋ ค์ง€๋Š” ์˜ค๋ธŒ์ ํŠธ

๐Ÿ’ซ ๋ผ์ดํŠธ ๋ฒ ์ดํฌ


๋ฒ ์ด์ปค๋ฆฌ ๋ฒ ์ดํฌ ์‹œ ํฐ์ƒ‰ ๊ฒ€์€์ƒ‰ ๋นจ๊ฐ„์ƒ‰ ์ดˆ๋ก์ƒ‰ ํŒŒ๋ž€์ƒ‰ ์–ผ๋ฃฉ

Auto-Atlasing . Texels per unit 40 ~ 80
๊ธ€๋กœ๋ฒŒ ์ผ๋ฃจ๋ฏธ๋„ค์ด์…˜ . samples
๋ณดํ†ต UV ์˜ค๋ฒ„๋žฉ ๋ฌธ์ œ > Texels per unit ๊ฐ’ ์˜ฌ๋ ค์ฃผ๊ฑฐ๋‚˜, UV ๋งต ์ž์ฒด ๊ฐ„๊ฒฉ
Force Power-Of-Two Atlas ์ฒดํฌ > ๊ฒ€์€ ๊ณต๊ฐ„ ๋งŽ์€ ํ…์Šค์ณ๋ฅผ ํฌ๊ธฐ ์ค„์—ฌ์คŒ, ํ•ด ๊ฐ€๋ ค์ง€๋Š” ์˜ค๋ธŒ์ ํŠธ

๐Ÿ’ซ Mesh Collider ๋ผ๋ฆฌ ์ถฉ๋Œ ์•ˆ๋จ


Convex ์ฒดํฌ

๐Ÿ’ซ ๋””๋ฒ„๊น…


  • Debug.Break()
  • Ctrl + Alt + P : 1 ํ”„๋ ˆ์ž„ ์ง„ํ–‰
  • Ctrl + Shift + P : ์ผ์‹œ์ •์ง€/์žฌ์ƒ
์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.