Unity でタングラム ゲームを開発しています。オブジェクトを 360 度回転させたいのですが、うまくいきません。オブジェクトを Web カメラで回転させたい。現実世界のオブジェクトを回転させるとき、現実世界のオブジェクトの回転に合わせてゲーム オブジェクトを回転させたいということです。実世界のオブジェクトとしてマーカーを使用しています。上記コードで回転しています。しかし、それは正確ではありません。本当の回転より速いです。
void Update ()
{
if (NyARWebCam == null) {
return;
}
NyARWebCam.update ();
NyARMarker.update (NyARWebCam);
bool checkMarker = NyARMarker.isExistMarker (mId);
bool checkMarker2 = NyARMarker.isExistMarker (mId2);
string s = "", pos = "", p = "";
float firstMarker = 0f, secondMarker = 0f;
if (checkMarker) {
NyARMarker.getMarkerTransform (mId, ref markerPosition1, ref markerRotation);
if (count1 == 0) {
float temp = (markerPosition1.z + actualZ);
applyZ1 = (markerPosition1.z - temp) + 50;
newZ1 = temp;
count1++;
} else {
applyZ1 = (markerPosition1.z - newZ1) + 50;
}
applyX1 = markerPosition1.x/2;
b.transform.position = Vector3.Lerp (b.transform.position, new Vector3 (-applyX1, 36.98051f, 36.98051f), 0.5f * Time.deltaTime);
float n = 1.0f;
n =(float) (markerRotation.x* Mathf.Rad2Deg);
Debug.Log (n);
b.transform.rotation = Quaternion.Euler (n*(n/8), 90, 0);
pos = "" + applyZ1;
firstMarker = applyX1;
}