質問
Unity3Dゲーム開発フレームワークを学び始めたばかりです。キーが押されたときに別のオブジェクトを「ポイント」しようとしています。
public GameObject target;
void Update () {
if (Input.GetKeyDown(KeyCode.A)) {
???
}
}
シリンダーの回転を変更するには、ターゲットとシリンダーの位置を使用しなければならないことを知っていますが、どのようにわかりません。それらのQuaternionsがまだ何であるかを理解していないと思います。
どんな助けにも本当に感謝しています!ありがとう、
マヌエル
解決
まず、シリンダーには、シリンダーのローカル空間に「前方」またはその「ポインティング方向」(私の言葉)の概念が必要です。このために、 +x、 +y、 +z、-x、-y、または-zのいずれかを想定(または視覚的に見ることができます)。または、別の方向に向けて自分の任意のベクトルを指定することもできます。
第二に、シリンダーの中心から他のオブジェクトの中心を指すベクトルが必要です(これについてはすでに言及しました)。
これで、Unityを使用できます Quaternion.FromToRotation(...)
シリンダーの世界ローテーションに適用された場合、ポインティング方向を他のオブジェクトの方向に回転させる四項を生成するために。終わり。
シリンダーがカップルを超えている場合、このアプローチのメカニズムをわずかに変更して、親の変換を説明する必要がある場合があることに注意してください。
他のヒント
あなたがQuaternionsを使用している理由については理由がありますか?私はQuaternionsを使用します。Quaternionsをベクター3として表すEular Anglesは、角度をよく理解する方法です。
ダッキーが言ったことは正しいですが、あなたが四項に問題がある場合、私はあなたがこれらの角度セットをよりよく理解するまでそれらを使用しないことをお勧めします。
それが役に立てば幸い