おもちゃラボ

Unityで遊びを作ってます

モバイルSuicaよりモバイルICOCA定期券を優先する

これまでモバイルsuicaにチャージして電車に乗ってましたが、モバイルicocaがiPhoneでも使えるようになったのを期に、モバイルicoca定期券を購入してみました。

ICOCAアプリ

ICOCAアプリ

  • West Japan Railway Company
  • ファイナンス
  • 無料
apps.apple.com

iPhoneにはモバイルsuicaとモバイルICOCAの定期券がどちらも入っている状態です。

なんとなく定期券が優先されそう〜と思って改札を通ってみると
ちゃっかりsuicaのチャージから引き落としされている・・・

ということで、ここではモバイルICOCAを優先的に使う方法を紹介します!

モバイルICOCA定期券を優先的に使う設定

必要な設定としては次の2点です

  1. メインカードに設定
  2. エクスプレスカードに設定

メインカードの設定

まずはウォレットアプリを開いてモバイルICOCAのカードを手前にドラッグ&ドロップしてください。「ICOCA定期券がメインカードになりました」と出たらOKです。

エクスプレスカードの設定

次に「設定アプリ」→「ウォレットとApple Pay」を選択、エクスプレスカードの欄をタップし、Suicaのカードを「オフ」にします。これでICOCA定期券がエクスプレスカードに設定されます。

  

これで、改札を通ったときにモバイルSuicaから引き落としされることはなくなるハズです!

【Unity】macOSでもJoyConLibが使えるようにする

前回は、UnityでJoy-Çonを使うため、JoyconLibというライブラリを紹介しました。
nn-hokuson.hatenablog.com

このJoyconLibは、非常に使い勝手がよく、重宝しているのですが、、、、2023年3月現在、Unity2022にインポートするとDllNotFoundExceptionが発生します。これは、JoyconLibで使われているPluginがIntel Mac用にコンパイルされてるためです。

したがって、Apple Siliconの環境でJoy-Conを使う場合は、JoyconLibのPluginをリビルドする必要があります。ここではその方法を紹介します。

hidapiのプロジェクト作成

JoyconLibのPluginをリビルドするため、Xcodeのプロジェクトを作成します。Xcodeを起動し、メニューバーから「macOS」を選択、Framework & Libraryの項目から「Bundle」を選択してください。

「Product Name」は「hidapi」に設定してください。


ソースコードのビルド

必要なソースコードをプロジェクトにインポートします。下記のサイトから次の3つをダウンロードしてください。

  • mac/hid.c
  • mac/hidapi_darwin
  • hidapi/hidapi.h

github.com

ダウンロードしたプログラムを、Xcodeの左カラムにドラッグ&ドロップして、プロジェクトにインポートします。

次に、必要となるフレームワークを追加します。左カラムでhidapiを選択した状態で、中央のメニューからBuild Phasesを選択します。Link Binary With Librariesの項目の「+」をクリックして、「AppKit.framework」を追加してください。

メニューバーから、Product→Buildを選択してビルドします。左カラムのProductsの中にhidapiのbundleが生成されます。

生成されたhidapiのバンドルを選択し、右クリックすると「Show in Finder」というメニューが表示されます。それを選択してFinderにhidapi.bundleを表示しておきましょう。

Unityにhidapiのバンドルを追加する

UnityプロジェクトにJoyconLibをインポートする方法は、前回の記事を参照ください。
nn-hokuson.hatenablog.com

JoyconLibがインポートできたら、Assets/JoyconLib_plugins/macフォルダを開いてください。hidapi.bundleが表示されているので、それを削除し、新しく作成したhidapi.bundleをドラッグ&ドロップでインポートしてください。

最後にUnityを再起動します。再起動しないとbundleがリロードされないので、この手順は必須です!罠です!ご注意ください。

再起動すれば、無事にM1/M2などのApple Silicon製のmacOSでもJoyconLibが使えるようになります。

【Unity】3分でセットアップ!Nintedo SwitchのJoy-Conを使う


UnityでNintendo SwitchのJoy-Çonを使いたい場合、JoyconLibというライブラリを利用するのが一番簡単です。
ここではJoyconLibの導入方法を説明します。

JoyConLibのインポート

下記のサイトから「JoyconLib06.unitypackage」をダウンロードしてください。
github.com

JoyconLib06のUnityパッケージがダウンロードできたら、プロジェクトにドラッグ&ドロップしてImportしてください。Scenes/SampleSceneのシーンを開くと、下記のような画面になります。


プログラムの修正

Unityのバージョンによっては、実行するとFormatExceptionのエラーが大量に出ます。
そのため、先にプログラムを修正しておきましょう。

JoyconLib_scriptsフォルダのJoycon.csを開いてください。

このプログラムの370行目と371行目をコメントアウトします。これで実行時のエラーが出なくなります。


Joy-Conの接続

Joy-ConのSyncボタンを押してください。LEDゲージが点滅状態になります。

この状態で、環境設定→Bluetoothを開きます(Macの場合)。
Bluetoothデバイスの候補にJoy-Con(L)、Joy-Con(R)が表示されるので、それぞれ「接続」を押して、PCと接続します。


Unityで実行する

実行すると2つのキューブが表示されます。それぞれ左Joy-Conと右Joy-Conに対応しています。Joy-Conを動かすと、Joy-Conの姿勢にあわせて、キューブが回転します。


Bluetooth接続が切断された場合

PCをスリープするなどしてJoy-Conとの通信が切断された状態で、Unityのプログラムを実行すると、「No Joy-Cons found!」というエラーがでます。

この場合は、PCにJoy-Conを再接続すればOKです。ただ、再接続しても同様のエラーが出る場合、Bluetoothの設定を削除して、Syncからやり直す必要があります。

環境設定からJoy-Con(L)/(R)の上で右クリック→「削除」を選択してください。この後、↑の「Joy-Conの接続」からやり直してください。

Apple SiliconのMacを使っている場合

このJoyconLibをM1/M2 Macで使おうとすると、DllNotFoundExceptionが発生します。これは、JoyconLibで使われているPluginがIntel Mac用にコンパイルされてるのが原因になります。

この対策については、次の記事でまとめるので、そちらを参照ください!