Androidで光センサーをUnityで使用したいと思います。 Unityはこれを行うことはできませんし、それを行うことができる店舗にはアセット/プラグインはありません。そして、Googleはこの質問とそれほどやさしいない...ユニティでAndroid光センサーを使用する方法
1
A
答えて
4
シンプルバージョン
この部分は私のコードを使用する方法について説明します。
Assets/Plugins/Android
フォルダ- に
.jar
ファイルを入れその後、単にあなたが望んでいたゲームオブジェクトのスクリプトLightSensorPluginScript.cs
を追加します。あなたがセンサ値取得したい場合 は次に:
TextMesh tm; LightSensorPluginScript test; void Start() { tm = transform.GetComponent<TextMesh>(); test = GetComponent<LightSensorPluginScript>(); } void Update() { tm.text = test.getLux().ToString(); }
をすべてのファイルは、このzip archive
に詳細なバージョン
この部分は、作成する方法について説明していますプラグイン。
まずAndroidライブラリを作成する必要があります。 Android Studioを使用している場合は、.aar
ファイルに変換されます。 zipファイルのようにそれらを抽出し、あなたが望むclasses.jar
ファイルを見つけるでしょう。名前を変更することもできますが、Unityは気にしませんでした。
AndroidのJavaコード
public class LightSensorLib{
private SensorManager mSensorManager;
private Sensor mSensorRot;
private float lux = -1000;
public void init(Context context) {
mSensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
mSensorRot = mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT);
SensorEventListener mySensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent event) {
float sensorData[];
if(event.sensor.getType()== Sensor.TYPE_LIGHT) {
sensorData = event.values.clone();
lux = sensorData[0];
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {}
};
mSensorManager.registerListener(mySensorEventListener, mSensorRot, 500);
}
public float getLux() {
return lux;
}
}
その後、私は今あなたができる
public class LightSensorPluginScript : MonoBehaviour {
private AndroidJavaObject activityContext = null;
private AndroidJavaObject jo = null;
AndroidJavaClass activityClass = null;
void Start() {
#if UNITY_ANDROID
activityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
activityContext = activityClass.GetStatic<AndroidJavaObject>("currentActivity");
jo = new AndroidJavaObject("com.etiennefrank.lightsensorlib.LightSensorLib");
jo.Call("init", activityContext);
#endif
}
public float getLux() {
#if UNITY_ANDROID
return jo.Call<float>("getLux");
#endif
}
}
C#橋コード
AndroidのJavaとユニティ間のブリッジを行い、C#のスクリプトを持っていますこの投稿の
Simple version
部分で説明されていることを実行するセンサ。 精度が必要な場合は、投稿に回答して更新していただきたいと思います。
IO版では申し訳ありませんが、これを開発するためのMacはありません...私に1本を貸したいのであれば、それをするのがうれしいです。
アセットストアにプラグインとして追加することはできますが、少し面倒です。だから、私はStackOverflow上でそれをポストエディタが本当にきれいに投稿することを好む。
最後に、一部の開発者に役立つことを願っています。
関連する問題
- 1. スマートフォンの光センサー
- 2. Android Wear心拍センサー生の光データ
- 3. IPカメラ/光センサーNode.js
- 4. Xperia Arc S光センサー
- 5. VGAカメラを光センサーとして使用するには?
- 6. 光センサーの値を取得する
- 7. Android RGB光センサーを読み取る - ギャラクシーS5
- 8. 指紋センサーを使用してAndroidでユーザーを認証する方法は?
- 9. Androidで2つのビュー(カメラとセンサー)を正しく使用する方法は?
- 10. Android光センサーのサンプリング周波数が低すぎます
- 11. XamarinのAndroidの光センサー - 現在の値を取得
- 12. OS Xで環境光センサー画面の調光をプログラムで無効にする
- 13. センサーをコードネームoneで使用する方法
- 14. ルーテッドアンドロイドの光センサーの価値を偽る方法はありますか
- 15. アンドロイドの変更直後に光センサーからセンサーデータを取得する方法は?
- 16. センサー加速度センサーを使ってアンドロイドで動きを検出する方法
- 17. ユニティでジャイロを使用してカメラを移動する方法
- 18. FireMonkey Android加速度センサー高CPU使用
- 19. androidの方位センサーを調整する方法
- 20. ユニティ。 UnityでColor.RGBToHSV()を使用する方法C#
- 21. ユニティ3DでGoogle VR SDK 1.50を使用する方法
- 22. 光沢のあるDT(renderDataTable)でscrollxを使用する方法
- 23. 外光センサーからの入力頻度
- 24. Androidセンサーをバックグラウンドで振る
- 25. ユニティで使用するためのAndroid用シリアルポート
- 26. 近接センサーを使用して写真を撮る方法は?
- 27. Android:一定の期間センサー値を収集する方法は?
- 28. センサーの起動方法と停止方法android
- 29. GoogleマップでAndroidセンサーを操作する
- 30. USB光センサー(ALS)製品または実装ですか?
この問題を処理するにはしばらく時間がかかり、Web上で解決策が見られないためです。だから私は他の人が私のように闘うのを防ぐために共有したいと思っていました。また、可視性のためにスタックオーバーフローを選択します。私がGoogleで検索するとき、私はブログのリンクよりもSOのリンクを好む。 (そして私は途中でブログを持っていませんでした) –
それは非常に具体的な質問だったら私はそれを詳しく述べるべきです。しかし、実際には私の質問は文字通り "私は光センサーの価値を1つにしたい"と答えた45ドルのプラグインを除いて答えはありません。だから私は私のものを与えた。コードに問題がある人は、最大限の情報を提供する必要がありますが、ここでは該当しません。 –
これは非常に有用な質問と答えだと思います。私はこれまで同様のことをしてきました。多くの人がそれをやりたいと思っています。唯一の違いは、センサ値が変更されたときに 'UnityPlayer.UnitySendMessage'を使ってC#関数を呼び出すことです。 – Programmer