[過去ログ] 【ゲームエンジン】Unityなんでも質問スレpart1 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
545: 名前は開発中のものです。 [] 2020/07/20(月) 17:58:30.46 ID:hNMBd3gW(3/3) AAS
>>544544(2): 名前は開発中のものです。 [] 2020/07/20(月) 17:58:01.54 ID:hNMBd3gW(2/3) AAS
>>421 です。解決しましたので報告します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BoxMove : MonoBehaviour
{
//ハンドルの GameObject を指定させる
public GameObject Handle;
//ハンドルの角度と回転軸
private float HandleAngle;
private Vector3 HandleAxis;
void Update()
{
//ハンドルの角度と回転軸を取得
Handle.transform.localRotation.ToAngleAxis(out HandleAngle, out HandleAxis);
//偶数周目では回転軸の向きが反転するので、それを検知して角度を修正する
if(HandleAxis.x < 0)
{
HandleAngle = 360 - HandleAngle;
}
//ハンドルの角度に応じて箱を移動させる
this.transform.localPosition = new Vector3(0, 0, HandleAngle);
}
}
続き
Debug.Log で HandleAngle と HandleAxis を同時に表示させたら気付きました。
ハンドルを回転させていくと、360°を越えるときに
...
HandleAngle = 358, HandleAxis = (1, 0, 0)
HandleAngle = 359, HandleAxis = (1, 0, 0)
HandleAngle = 359, HandleAxis = (-1, 0, 0)
HandleAngle = 358, HandleAxis = (-1, 0, 0)
...
のように、HandleAxis の向きが反転していました。なので、HandleAxis が反転したとき(HandleAxis.x が負のとき)は逆回転になっていると解釈して、回転角度は360から HandleAngle を引いたものとしました。
これで所望の挙動が得られました。皆さんのご参考になれば幸いです。
上下前次1-新書関写板覧索設栞歴
あと 457 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.010s