์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ARCore SDK ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ๋ฐฐํฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์จ๋ณผ๊ป˜



1. ์ง€์› ๊ธฐ๊ธฐ ์ œํ•œ


์ง€์› ๊ธฐ๊ธฐ๋Š” ์—ฌ๊ธฐ์— ์ •๋ฆฌ๋˜์–ด์žˆ๋‹ค.

URL :ย https://developers.google.com/ar/discover/


๋Œ€ํ‘œ์ ์ธ๊ฑด ๊ตฌ๊ธ€ ํ”ฝ์…€ํฐ 1, 2

์‚ผ์„ฑ ๊ฐค๋Ÿญ์‹œ S7, S8, S8+, Note8์ด๋‹ค.


์ด ์™ธ์— ํฐ์€ ์•„์— ์„ค์น˜๋„ ๋ชปํ•˜๊ฒŒ ๋ง‰๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋‹ค.


1) ๊ตฌ๊ธ€ ๊ฐœ๋ฐœ์ž ์ฝ˜์†” > ์•ฑ > ๊ธฐ๊ธฐ ์นดํƒˆ๋กœ๊ทธ์— ๋“ค์–ด๊ฐ„๋‹ค.


2) ์•„๋ž˜ ์ด๋ฏธ์ง€ ์ฒ˜๋Ÿผ ํ”ฝ์…€ํฐ 1, 2, ์‚ผ์„ฑ ๊ฐค๋Ÿญ์‹œ S7, S7 Edge, S8, S8+, Note8๋ฅผ ์ œ์™ธํ•˜๊ณ ๋Š” ๋ชจ๋‘ ์ œ์™ธ์‹œํ‚จ๋‹ค.


viewimage.php?id=2abcdd23dad63db0&no=24b0d769e1d32ca73fef87fa11d028313cb65f50fe50c4dcac889073db7d93638d6b6d9df55c8528adbaf2282646f854bde58ae24b1d9376e9cee1e4b17dbe88e75584


์—„~์ฒญ ๋งŽ์œผ๋‹ˆ๊นŒ ์†์ด ์ข€ ์•„ํ”„๋‹ค. ๋ชจ๋‘ ์ œ์™ธํ•˜๊ธฐ ๋ฒ„ํŠผ์ด ์žˆ์„๊บผ ๊ฐ™์€๋ฐ ๋‚˜๋Š” ๋ชป์ฐพ๊ฒ ๋”๋ผ.



2. Android ARCore SDK ์„ค์น˜ ํŽ˜์ด์ง€๋กœ ์ด๋™


ARCore๋ฅผ ์ด์šฉํ•œ ์•ฑ์€ ARCore SDK ๋ผ๋Š” ์•ฑ์ด ์„ค์น˜๊ฐ€ ๋˜์–ด ์žˆ์–ด์•ผํ•œ๋‹ค.

๊ตฌ๊ธ€ ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด ์ฃผ์†Œ๋Š” ์—ฌ๊ธฐ๋‹ค :ย https://play.google.com/store/apps/details?id=com.google.ar.core

์›๋ž˜๋Š” ๊ฐœ์ธ์ด ์ง์ ‘ apk๋ฅผ ์„ค์น˜ํ–ˆ์–ด์•ผํ–ˆ๋Š”๋ฐ ์ด์ œ ํ”Œ๋ ˆ์ด ์Šคํ† ์–ด์— ์˜ฌ๋ผ๊ฐ€ ์žˆ๋”๋ผ.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๊ฐ€ ํ• ์ผ์€ ARCore SDK์˜ ์„ค์น˜์œ ๋ฌด๋ฅผ ํŒ๋ณ„ํ•ด์„œย  ๋ฏธ์„ค์น˜๋ฉด ARCore SDK ์„ค์น˜ ํŽ˜์ด์ง€๋กœ ๋Œ๋ ค์ฃผ๋ฉด ๋๋‚œ๋‹ค.


์ง€๊ธˆ์€ ๋ณ„๋„๋กœ ๋‹ค์šด๋ฐ›์•„์•ผ ํ•˜์ง€๋งŒ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๊ตฌ๊ธ€ ํฌํ† ๋‚˜ ๊ตฌ๊ธ€ ๋งต์ฒ˜๋Ÿผ ๋ฏธ๋ฆฌ ์„ค์น˜๋˜์–ด์„œ ๋‚˜์˜ฌ๊บผ๋ผ๊ณ  ๋ณธ๋‹ค.



์˜ˆ์ œ์˜ AR Controller ์Šคํฌ๋ฆฝํŠธ์˜ย _QuitOnConnectis ํ•จ์ˆ˜๋กœ๊ฐ„๋‹ค.


์ด ํ•จ์ˆ˜์—๊ฑฐ ์„ธ์…˜ ์—ฐ๊ฒฐ์ƒํƒœ๋ฅผ ์ฒดํฌํ•ด์„œย SessionConnectionState.ConnectToServiceFailed ์ƒํƒœ์ด๋ฉด ARCore SDK ํŽ˜์ด์ง€๋กœ ๋ณด๋‚ธ๋‹ค.


if (Session.ConnectionState == SessionConnectionState.ConnectToServiceFailed)

{

installSDKObj.SetActive(true);

Text text = installSDKObj.GetComponentInChildren<Text>();


text.text = "๊ตฌ๊ธ€ ARCore SDK๊ฐ€\n์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n\n์ž ์‹œํ›„\n์„ค์น˜ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.";

_ShowAndroidToastMessage("๊ตฌ๊ธ€ ARCore SDK๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.");


m_IsQuitting = true;


Invoke("OpenSDKPage", 4.5f);

Invoke("DoQuit", 5f);

}


๋งˆ์ผ“์œผ๋กœ ๋ณด๋‚ด๋ฒ„๋ฆฐ๋‹ค.

private void OpenSDKPage()

{

Application.OpenURL("market://details?id=com.google.ar.core");

}



์—ฌ๊ธฐ๊นŒ์ง€ ํ•˜๋ฉด ์ผ๋ฐ˜์‚ฌ์šฉ์ž ์„ค์น˜ ์ˆœ์„œ๋Š” ์ด๋ ‡๋‹ค.


1. [๋‘๋”์ง€์žก๊ธฐ๊ฒŒ์ž„]์„ ์„ค์น˜

2. [๋‘๋”์ง€์žก๊ธฐ๊ฒŒ์ž„]์„ ์‹คํ–‰

3. ํ™”๋ฉด์— "๊ตฌ๊ธ€ ARCore SDK๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž ์‹œํ›„ ์„ค์น˜ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค"ย 

ย  ๋ผ๋Š” ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๊ณ  ๊ตฌ๊ธ€ํ”Œ๋ ˆ์ด์Šคํ† ์–ด๋กœ ํ™”๋ฉด์ด ์ „ํ™˜๋œ๋‹ค.

4. ARCore SDK ์„ค์น˜ํŽ˜์ด์ง€์—์„œ ์•ฑ์„ ์„ค์น˜ํ•œ๋‹ค.

5. ์„ค์น˜ ์™„๋ฃŒํ›„ย [๋‘๋”์ง€์žก๊ธฐ๊ฒŒ์ž„]์„ ์‹คํ–‰์‹œํ‚จ๋‹ค.

6. ์นด๋ฉ”๋ผ ๊ถŒํ•œ ๋™์˜๋ฅผ ์–ป๋Š”๋‹ค.

7. ๊ฒŒ์ž„์„ ํ”Œ๋ ˆ์ดํ•œ๋‹ค.






์—ฌ๊ธฐ ๊นŒ์ง€๊ฐ€ [ARCore๋ฅผ ์‚ฌ์šฉํ•œ ๋ชจ๋ฐ”์ผ ์ฆ๊ฐ•ํ˜„์‹ค ๋‘๋”์ง€์žก๊ธฐ ๊ฒŒ์ž„ ๋งŒ๋“ค๊ธฐ] ์ข…๋ฃŒ๋‹ค.


๊ฐœ์ธ์ ์œผ๋กœ ARCore์˜ ๊ธฐ๋Šฅ์ด๋‚˜ ์ง€์›์€ ์ข‹์€๋ฐ AR์ด ์ด๋ฏธ ๋ณ‘์‹ ์ด๋ผ ์–ด๋–ป๊ฒŒํ•ด๋„ ์‚ด์•„๋‚ ๊บผ ๊ฐ™์ง€์•Š์€ ๋А๋‚Œ์ด๋‹ค.


๊ทธ๋‚˜๋งˆ ARCore๊ฐ€ ์ ์  ๋Š˜์–ด๋‚˜๊ณ  ๊ธฐ๊ธฐ์— SDK๊ฐ€ ๋‚ด์žฅ๋˜์–ด ๋‚˜์˜ค๋ฉด ๊ทธ๋ž˜๋„ ์กฐ๊ธˆ์€ ํฅํ•˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ด๋ณธ๋‹ค.