【Unity】オブジェクトの持つ位置を変える

投稿者: | 2020-05-12

オブジェクトを持つ時にカーソルがあった場所を掴んで移動させてみます。

// オブジェクトを持つ時
effort = item.transform.InverseTransformPoint(hit.point); // レイの当たった場所のローカル座標を保存

// ---
// オブジェクトを移動させる
// ワールド座標に直して使う
itemRb.velocity = (transform.forward * itemDist + transform.position - item.transform.TransformPoint(effort)

RaycastHit.pointでレイがコライダーに当たった位置を取得して、それをオブジェクトのローカル座標に直して保存しておきます。オブジェクトを移動するには、それをワールド座標に直した位置から、プレイヤーの視線の少し先への方向をオブジェクトのRigidbody.velocityに代入します。

ドアの開閉も掴む場所によって動きが少し変わります。

コメントを残す

メールアドレスが公開されることはありません。