Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Rigidbody.MoveRotation

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public function MoveRotation(rot: Quaternion): void;
public void MoveRotation(Quaternion rot);

パラメーター

rot Rigidbody の角度

説明

Rigidbody オブジェクトを指定する角度へ回転します

Rigidbody の interpolation (補間)設定にしたがって、Rigidbody を回転するために Rigidbody.MoveRotation を使用します。

Rigidbody で Rigidbody interpolation(補間)を有効にした場合、Rigidbody.MoveRotation を呼び出すと、レンダリングされる中間フレームで2つの位置の間のスムーズな遷移となります。これは、各 FixedUpdate で継続的に rigidbody を回転したい場合、使用される必要があります。

中間位置がレンダリングされないで、リジッドボディをある回転から他の回転にテレポートしたい場合、代わりに Rigidbody.rotation を設定します。

var eulerAngleVelocity : Vector3;
var rb: Rigidbody;

function Start() { rb = GetComponent.<Rigidbody>(); }

function FixedUpdate () { var deltaRotation : Quaternion = Quaternion.Euler(eulerAngleVelocity * Time.deltaTime); rb.MoveRotation(rb.rotation * deltaRotation); }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public Vector3 eulerAngleVelocity; public Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); } void FixedUpdate() { Quaternion deltaRotation = Quaternion.Euler(eulerAngleVelocity * Time.deltaTime); rb.MoveRotation(rb.rotation * deltaRotation); } }

isKinematic を false に設定すると、スムーズな推移というよりはむしろオブジェクトはテレポートされます。