๊ทธ์ ๊ป๋ ์ฌ๋ ธ๋๋ฐ,ย 2d ํ๋ค์ด ๋ฐฉ์์ ๊ฒ์ ๋ง๋ค๊ณ ์์ด.ย
ํ zone์์ ๋ค๋ฅธ zone์ผ๋ก ์ด๋ํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋๋ฐ ์์ง๋ ๋ชป ๊ณ ์ณค์ด ใ ใ ย :ย
ย
์ด๋์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋์ง ์์๋ณด๊ธฐ ์ํด ๊ฐ ์ค ๋ง๋ค yield return new WaitForSeconds(1f);๋ฅผ ๋ฃ์ด์ ํ์ธํ ๊ฒฐ๊ณผ
ย confiner.BoundingShape2D = mapBoundary;ย ๋ก confiner๋ฅผ ๊ฐ์ ๋ผ์ธ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํด.ย
์๋ํฐ์์ ๋ณด๋ฉด ๋ฐ๋ก ์ ๋ ๋ฉ์ธ์นด๋ฉ๋ผ ๋ฐ์ค ์์ญ์ด ํฌํํ๊ฒ zone1๊ณผ zone2 ์ฌ์ด - zone1.5๋ผ๊ณ ํ ๊น? - ์ ๊ฑธ์ณ ์์ด.
์ ๋ฃ ์ฑGPT์ ๊ตฌ๊ธ ์ ๋ฏธ๋์ด๊น์ง ๋์ํด์ ์ด์ ๋ถํฐ ์จ๋ฆ์ค์ธ๋ฐ ์๋ค๋ ํด๊ฒฐ์ ๋ชปํด ใ ใ ย
ํ์ฌ๊น์ง ์๋ํด ๋ณธ ๊ฒ ์ค ๋ํ์ ์ธ ๊ฒ (๋ชจ๋ ์คํจ)
1. confiner (Cinemachine Confiner2D)๋ฅผ ๊ป๋ค๊ฐ ์ ํ ์ด ๋๋ ํ ์ผฌย
2.ย CinemachineBrain์ ๊ป๋ค๊ฐ ์ธํ ๋๋ ํ ์ผฌ
3. pixel perfect camera ์ปดํฌ๋ํธ ์ ๊ฑฐํด ๋ดย
4. ์์ ์ธ ๋ฐฉ๋ฒ ๋ค ํฉ์ณ ๋ด
๋ญ ํด๋ ๋ฉ์ธ ์นด๋ฉ๋ผ๊ฐ zone1.5๋ฅผ ์ฐ๊ณ zone2๋ก ์ด๋ํด.ย ใ ใ ย ย
ํน์ย ย PolygonCollider2Dย ์์ญ์ด ์ด์ํ ๊ฑธ๊น? ์ ์ด์ ๋ง์ฐ์ค๋ก ๊ผญ์ง์ ์ก์ ๋๋๊ทธ ํด์ ์นด๋ฉ๋ผ ์์ญ ์ ํ๋ ๊ฒ ์ข ๋ถ์ํ๊ธด ํ๋๋ฐ.ย
zone1๊ณผ zone2 ์์ญ์ collider ์ฌ๊ฐํ๋ค์ด ์๋ก ์์ฃผ ๋ฏธ์ธํ๊ฒ ๊ฒน์น๊ฒ ํ๊ธด ํ์ด (GPT๊ฐ ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ ์์ ํ๋์)ย
์ ๋ํฐ ๋ฒ์ ์ 6000.0.58f2์ผ. ๋ค๋ฅธ ๋ฒ์ ์ผ๋ก ์ด์ฌ๊ฐ์ผ ํ ๊น?ย
ํด๊ฒฐํด ์ฃผ๋ ํฝ๋๊ป ์นํจ ์ ๊ฒ.ย ์ ์ด๊ฑด ์๊ฐํด ๋ณด๋ ๊ฐ์ธ์ ๋ณด ๋ ธ์ถ ๋ฌธ์ ๊ฐ ์์ด์;;;ย
๋์ ๋ถํํด.ย
์ ๋ํฐ ์นด๋ฉ๋ผ ์๋ ์ข ์ก์๋์์ด ์ง๋๋ง์๋ ๋ง์์ ๋ช ํํ ํด๊ฒฐ์ ๋ชจ๋ฅด๊ฒ ๋ค 2d์ชฝ์ ์์ ํด๋ด์ ํด๋น ์์ญ์ด ์์ ๋ฐฉ์ ๋์ด๊ฐ๋๊ฒ ์๋๋ผ๋ฉด ์ฝ๋ผ์ด๋ ๋ฌธ์ ์ผ ํ๋ฅ ์ด ์์ด๋ณด์ด๊ธด ํจ
์ถฉ๋๋ก ์ ํ์ด ๋๊ฑฐ๊ฑฐ๋ ๋ณด๊ฐ์ด ๋๊ฑฐ๊ฑฐ๋ ๋์ค ํ๋์ผ ํ๋ฅ ์ด ์์ด๋ณด์ด๋๋ฐ? ๊ธ๋ง๋ด์ ์นด๋ฉ๋ผ๋ฅผ ์ ํํ ์ด๋ป๊ฒ ๋ญ ํ๊ณ ์๋์ง ๋ชฐ๋ผ์ ๋ต์ ๋ชปํด์ฃผ๊ฒ ๋๋ฐ ๋ ๋ณด๊ฐ์ด์์ชฝ์ ๋ธ๋ ๋ฉ+์นด๋ฉ๋ผ ์ ๋ฐ์ดํธ์๋๊น์ง ์กฐ์ ํ๋ฉด์ ํด๊ฒฐํ์์
๋ด๊ฐ ๋ฐ๋ถ๋ผ ๊ทธ๋ฐ๊ฐ ๋ฌด์จ ๋ฌธ์ ์ธ์ง ๋ชจ๋ฅด๊ฒ ์ด ๋ค์ ์กด์ผ๋ก ๋์ด๊ฐ ๋ ๋ธ๋ ๋ฉ์์ด ๋ฐ๋ก ์ ํ๋๋ ๊ฑธ ์ํ๋ ๊ฑฐ์ผ?
๋ง์ฝ ๋ง๋ค๋ฉด ๊ทธ๋ฅ ์นด๋ฉ๋ผ ํ์ฑํ/๋นํ์ฑํ๋ง์ผ๋ก ๊ฐ๋ฅํ๋ฐ
์์์ด๋ ์์งค์ ์ฌ๋ ค๋ณด์ผ
๋๋ ์นด๋ฉ๋ผ ํฌ๊ธฐ๋ ๋ชฉํ ๊ฒฝ๊ณ๋ Clampํด์ ๊ฑฐ๋ฆฌ ๊ณ์ฐํ๊ณ ์์น ๋ฐ๋ก ๋ฐ๊ฟ์คฌ์
Codexํํ ๋์ ธ๋ณด์
lazy Evalutaion์ ํด๋ด.๋ ์์ฐ์ค๋ฌ์ด ๋ฐฉ์๋ฐฉ๋ฒ 1: ํ์ฌ zone / ๋ค์ zone์ ๋ถ๋ฆฌ์ถ์ฒ ๊ตฌ์กฐ๋ ์ด๋ ์ต๋๋ค.currentZone : ํ์ฌ ์นด๋ฉ๋ผ๊ฐ ์ํ zonependingZone : ํ๋ ์ด์ด๊ฐ ๋ค์ด๊ฐ ๋ค์ ํ๋ณด zone์ค์ ์ ํ์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๋ง์๋ฅผ ๋ค์ด:zone1๊ณผ zone2๊ฐ ์ด์ง ๊ฒน์นจํ๋ ์ด์ด๊ฐ ๊ฒน์นจ ์์ญ์ ๋ค์ด์ด๋ฐ๋ก zone2๋ก ๋ฐ๊พธ์ง ์์ํ๋ ์ด์ด ์ค์ฌ์ด zone2 ์ชฝ ๊ธฐ์ค์ ์ ๋์์ ๋๋ง ๋ฐ๊ฟ์ด๋ ๊ฒ ํ๋ฉด โํ๋ฒ ๋ณด์ฌ์ฃผ๊ณ ๋์ด๊ฐ๋โ ๋๋์ด ์ค์ด๋ญ๋๋ค.
private void OnTriggerEnter2D(Collider2D collision) { if (!collision.CompareTag("Player")) { return; } transition.SetPendingBoundary(mapBoundary); }
@์ ๋ฐ๋ฆฌ ์นด๋ฉ๋ผ ํธ๋์ง์ ์ ๋ด๋นํ๋ ์ปดํฌ๋ํธ์ update์์ PolygonCollider2D.OverlapPoint(_player.position) ๋์ด๊ฐ์ ๋ pending๋ ๋ฐ์ด๋๋ฆฌ๋ก ์นด๋ฉ๋ผ ์ด๋
์ดํ์งธ ๊ณ ๋ฏผ์ค์ด๋ผ๋๊ฑฐ ๋ณด๋ ๊ณ ์์ด ๋ง๊ตฌ๋. ์๊ฐ์ด ๊ฑธ๋ ค์๋ผ๋ ํด๊ฒฐํ๊ณ ์ถ๋ค๋ฉด, ์ด๊ฑฐ ์ฌํ ๊ฐ๋ฅํ ์ต์ ๋ฌถ์์ ์ฝ๋, ์ฌ๋ง ๋ง๋ค์ด์ ๊ณต์ ํด๋ณด๋๊ฑด ์ด๋? (์ด๋ ๊ฒ ๋ฌถ์ด๋ด๋๊ฒ ์ด๋ ค์ธ์๋์์ด ์ฌ๋ฌ๊ฐ์ง ์ํฉ์ด ๊ฒน์ณ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ผ ์๋ ์์ด์) ๊ธ๋ก ์ด๋ ๊ฒ ์ํฉ์ค๋ช ํ๋๊ฑฐ๋ณด๋ค๋ ๋ค๋ฅธ ์ฌ๋๋ค์ด ๋ ํ์คํ๊ฒ ๋์์ค์์์๊ฒ๊ฐ์๋ฐ
๋ค๋ฅธ ์ฌ๋๋ ๊ฐ์ ์ํฉ์ ์ง์ ์๋ํฐ์์ ๋์ผ๋ก ๋ณด๊ณ ๊ณ ์น ์ ์๊ฒ ์กฐ๊ฑด์ ๊ตฌ์ฑํด๋ณด๋ผ๋๊ฑฐ์ผ
@Indie5(58.237) ์ผ๋จ ๋ณด์ฌ์ง ์กฐ๊ฑด๋ค๋ง ๋ณด๊ณ ์๋ํด๋ณผ ์ ์๋ ๋ฐฉ๋ฒ1. HandleTransition ํจ์๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝvoid HandleTransition(GameObject player){ Vector3 oldPos = player.transform.position; UpdatePlayerPosition(player); Vector3 delta = player.transform.position - oldPos; confiner.BoundingShape2D = mapBoundary; confiner.InvalidateBoundingShapeCache(); cam.OnTargetObjectWarped(player.transform, delta);}
@Indie5(58.237) ์ข ๋ ์์ธํ ํด๊ฒฐํด๋ณด๊ณ ์๋๋ ๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ธ์ ์ข ์จ์คฌ๊ตฌ๋
์์์ ์ฌ๋ฆฌ๋ฉด ๋จ๋ค์ด ๋ ์ฝ๊ฒ ์ดํดํ ์ ์์ง ์์๊น
์๋ ์๋ฐ ์ง๋ฌธ๋ง ์ธ๊ณ ํ์ด๋ฒ๋ฆฌ๋ฉด ์์ ๋๊ธ๋จ ์๋ผ๋ค์ด ๋ญ๊ฐ๋จ? ์ด๊ฑฐ ๊ทธ๋ฅ ์ธ๊ณ ํ๊ณ ๋ก ํด๊ฒฐํ ๊ฒ ์๋๋ผ ์ง์์๋ต์ด ํ์ํ ๋ฌธ์ ์ธ๋ฐ ์์นจ์ ์ค๋ฉด ์ธ๋ถ์ด๋ค์ด ์์์ ํ์ด๋๊ฒ ์งํ๋๊ฑฐ๋? ใ ใ ใ ์ญํ ์ด์ด๊ฐ์๋ค
์ฐ์ ๋๊ธ์ด ์์ฒญ ๋ง์ด ๋ฌ๋ ธ๋ค. ์ ๋ง ๊ณ ๋ง์. ๊ทธ๋ฆฌ๊ณ ๋ฏธ์. ๊ธ ์ฌ๋ฆฌ๊ณ ๋์ ์นจ๋์ ์ ๊น ๋์ ๋๋ฐ ๊ทธ๋ฅ ๊ธฐ์ ํด ๋ฒ๋ ธ์ด. ๋งจ ์์ ๊ทธ๋ฆผ์ ๋ค์ ๊ทธ๋ ค๋ณด๊ณ , ๋๊ธ์ ๋์จ ๊ฒ๋ ํ๋ฒ ์๋ํด ๋ณผ๊ฒ. ๊ณ ๋ง์!
์ผ๋จ ์ ์ํด ์ค ๊ฑธ ๋ชจ๋ ์๋ํด ๋ดค๋๋ฐ ์คํจํ์ด. ํ ๊ฐ์ง ๋ฐ๊ฒฌํ ๊ฑด ์ด์ ๋ ์ด์ ์คํฌ๋ฆฝํธ์์ ๋ฌธ์ ๋ ์๋ ๊ฒ ๊ฐ๋ค๋ ๊ฑฐ์ผ. polygon collider 2D ์์ญ์ ๋ง์ฐ์ค๋ก ์๋กญ๊ฒ ์กฐ์ ํ ๋๋ง๋ค ๊ฒฐ๊ณผ๊ฐ ์กฐ๊ธ์ฉ ๋ฌ๋ผ์ง๋ ๊ฑธ ๋ฐ๊ฒฌํ์ด. Cinemachine Camera์ Lensํญ๋ชฉ์ Orthographic Size ์์น๋ฅผ ๋ฐ๊ฟ ๋๋ ๊ทธ๋ ๊ณ . ์ด ์ซ์์ polygon ์์ญ์ ๊ณ์ ๋ง์ ธ ๋ณด๋ฉด์ ํ ์คํธ ํด ๋ด์ผ ํ ๊ฒ ๊ฐ์. ๊ฒฐ๊ณผ ๋์ค๋ฉด ๊ฒ์ํ์ ๊ณต์ ํ ๊ฒ. ๋ชจ๋ ๊ณ ๋ง์ ์ ๋ง๋ก!