先日、キャラクターがアイテムを拾う時に、アイテムがキャラクターの手にくっつくような処理を実装しました。
アイテムにParent Constraintをアタッチして、キャラクターがアイテムを掴んだ時にParent ConstraintのIs Active(スクリプトではconstraintActive)をtrueにするスクリプトを書いてみました。しかし、実行してみると、アイテムが変なところへ飛んでしまいました。これは、実行の開始時の手のポジションでOffsetがかかっているためでした。
キャラクターがアイテムを掴んだ時にOffsetを設定することで、目的通りの動きになりました。
var offset = itemTransform.position - handTransform.position; //アイテムの位置 - 手の位置 parentConstraint.SetTranslationOffset(0, offset); parentConstraint.constraintActive = true;