Unity에서 비콘을 시도했습니다

도쿄 본사의 S입니다.

최근에는 "게임 이외에도 Unity 사용"라고 케이스가 증가하고 왔습니다.
수탁 안건으로 신호를 사용하여 iPhone / Android 어플리케이션을 만들고 있으며, 이번에는 Unity에서 iBeacon 수신기 응용 프로그램을 만들어 가려고합니다.

비콘은 수수께끼 및 버튼이지만 한마디로 말하면 "미약 전파를내는 장치"입니다.

그 미약 전파를 스마트 폰으로 검색하여 위치 정보 (UUID)를 가져옵니다.

감지 범위는 몇 센티미터 / 1m / 10m와 신호의 사양에 따라 선택할 수 있으므로, 좁은 범위에서의 위치 정보를 얻을 수 있습니다.

예를 들어 몇 센티미터 범위의 신호는 진열 상품 옆에두고 스마트 폰을 표지에 갖다 대면 정보 제공 수 있으며, 1m 범위의 표지는 제품에 접근했다는 감지, 10m의 비콘은 점포 (매장)에 내점 한 는 감지 할 수있을 것입니다.

이번에는 매장에 내점 한 손님에게 개인화 된 쿠폰을 즉석에서 배포하는 가정 사항입니다.

표지도 여러 종류가 있지만, Bluetooth의 미약 전파를 사용하는 것이 많은 듯합니다.

이번에는 Apple이 독자적으로 규격을 만든 iBeacon을 사용합니다.

신호는 다음의 두 가지 단말기를 준비했습니다. 모두 iBeacon 규격에 대응하고 있습니다.

비콘

크기가 모를지도 모릅니다 만, 500 엔 동전을 한층 크게 한 정도입니다.
왼쪽 버튼 전지, 오른쪽은 AAA 배터리로 구동하고 모두 배터리는 1 년 이상 가진다고입니다.

왼쪽은 "BLEAD®-Ver.2 "
http://www.houwa-js.co.jp/index.php/ja/products/blead

오른쪽은 "BVMCN1101AAB"
http://www.products.braveridge.com/beacon/bvmcn1101aa-b/

그런데, 신호는 준비 할 수 있었으므로, 나머지는 다음을 준비합니다.

· Unity5
· BLE 지원하는 Android 단말 및 iOS7 이상의 단말
· iBeacon 말 자산

Android 기기는 신호를 감지 할 수 있도록 BLE (BlueTooth Low Energy)에 대응하고있다 BlueTooth Ver.4 터미널을 사용하십시오. 최근 단말기라면 대부분 OK라고 생각 합니다만, 조금 오래된 단말이라고 BlueTooth가 Ver.4에서는 없을 수도 있습니다.
iOS 단말은 iOS7 이상에서 신호가 지원되도록되어 있습니다.

Unity는 자산을 사용합니다.
일부 신호의 자산을 시도했지만 안정되지 않는 것도 있기 때문에 다음 "iBeacon"라는 자체의 유료 자산을 사용합니다.

자산 "iBeacon"$ 25
https://www.assetstore.unity3d.com/jp/#!/content/15260

"응용 프로그램을 실행하는 동안 Beacon 정보를 수신한다 '는 요구 사항라면이 자산 OK입니다. 백그라운드에서 상주시키고, 신호 정보를 전송하는 등의 경우는 확인하지 않기 때문에주의하시기 바랍니다.

Unity을 시작하고 구현을 진행합니다.

■ 구현 단계 ■

1. Assets 가져 오기

가져올 때 다음과 같이되어 있다고 생각합니다.

unity1

Scene / ibeaconreciverexample라고 장면을 선택하세요

2. UUID를 세트하는

unity2

a. Hierarchy에서 IBeaconReviver을 선택합니다.
b. 모니터링하는 신호의 수를 설정합니다.
c. 모니터링되는 신호의 이름을 지정합니다.
d. 먼저 적어 둔 단말기의 UUID를 지정합니다.
e. 응용 프로그램 시작시 표시되는 위치 정보의 설명을 기재합니다.
업데이트 후 [Update Description]을 클릭하십시오.

앱을 실행하면 다음과 같이 표시됩니다.

unity3

3. 기기에서 앱 실행

그러면 실제로 Android와 iPhone의 각각의 단말에서 앱을 실행시켜 보겠습니다.

단말기 사이에있는 것이 신호입니다.

unity4

단말기 화면에 표시되는 항목입니다 만, UUID / Major / Minor 비콘에 설정할 수있는 것입니다. 비콘 설치시에 미리 설정합니다.
이러한 정보를 이용하여 어떤 신호를 수신했는지 판정 할 수있는 것이지요.

[Range] 신호로부터의 거리입니다. 정확한 거리는 잡히지 않기 때문에 대략적인 거리입니다.
Immediate : Beacon → 가까운 거리에 있다는 것을 나타냅니다.
Near → 근거리에 있음을 나타냅니다.
Far → 원거리에 있음을 나타냅니다.
Unknown → Beacon의 거리가 불명 한 것을 나타냅니다.

[Rssi] 수신 강도입니다. 값이 클수록 수신 상태가 좋은 것을 나타내고 있지만 Range가 unknown 때는 값이 0이 될 수 있습니다.

 

에셋을 사용하여 Unity에서도 쉽게 비콘 정보를 얻을 수있는 것을 알 수 있다고 생각합니다.

간단하지만 "응용 프로그램을 실행하는 동안 비콘 정보를 수신하는"일이 있으면,

· 미술관의 전시물을 안내 앱
· 탈출 게임에서 단서의 위치를 ​​검색 할 수있는 팁 앱
· 각 점포의 쿠폰을받을 수있는 어플
· 스탬프 랠리와 같은 응용 프로그램
· 오한 비콘을 갖게두고 (옷에 붙여 라든지), 방에 가까워지면 알려주는 앱 (웃음)

등, 할 수있는 일이 훨씬 넓어 진다고 생각합니다.

비콘 개인으로 살 수있는 가격 (수백 엔 ~ 수천 엔)이고, 부담없이 실험도 할 수있을 것 같네요.