前提・実現したいこと
Unityを使ってHoloLens2のアプリケーション開発を行っています。
現在画面上に3Dオブジェクトを表示していて手で掴んで操作することができます。
そこでフレーム毎にy軸周りの回転量(y軸の角度差)を計算し、それを基に他の機能を追加したいと考えています。
いろいろ検索してみましたが解決策が見当たらなかったため質問として投稿させていただきます。
また、下記の変数differenceを他のスクリプトで使用する方法についてもご教授していただけると幸いです。
発生している問題・エラーメッセージ
エラーは特に起きていませんがうまくいっているのかどうか自分では判断ができていない状況です。 下記のold_angleに現在の角度を格納し、differenceで差分を検出しようという目論見ですが、Debug.Logで確認するとずっと0が出力されます。 old_angleの出力はオブジェクトの現在角になっています。 differenceの出力が正しく計算されていないこと(old_angle = difference)が原因なのかそれとも計算はきちんと行われているが変化が目視できていないのかがわかっていません。
該当のソースコード
角度を扱う部分 using System.Collections; using System.Collections.Generic; using UnityEngine; using System; public class CyrinderRotation : MonoBehaviour { float old_angle = 0; float difference = 0; public string GetServoAngle() { var rb = GetComponent<Rigidbody>(); //gameObject.transform.localEulerAngles;//オブジェクトの回転座標取得 //return $"{ConvertPitch(transform.localEulerAngles.x)},{ConvertYaw(transform.localEulerAngles.y)}"; //transform.rigidbody.constraints = RigidbodyConstraints.FreezePosition; //rigidbody.constraints = RigidbodyConstraints.FreezeRotationX; //rigidbody.constraints = RigidbodyConstraints.FreezeRotationZ; old_angle = transform.localEulerAngles.y; difference = transform.localEulerAngles.y - old_angle; Debug.Log(old_angle); Debug.Log(difference); return $"{transform.localEulerAngles.y}"; } void start() { } public void Update() { } }
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
Unity2019.4.15f1
HoloLens2
回答1件
あなたの回答
tips
プレビュー