[Unity] 実行中にParent ConstraintのOffsetを設定する方法

Unity

先日、キャラクターがアイテムを拾う時に、アイテムがキャラクターの手にくっつくような処理を実装しました。

アイテムにParent Constraintをアタッチして、キャラクターがアイテムを掴んだ時にParent ConstraintのIs Active(スクリプトではconstraintActive)をtrueにするスクリプトを書いてみました。しかし、実行してみると、アイテムが変なところへ飛んでしまいました。これは、実行の開始時の手のポジションでOffsetがかかっているためでした。

キャラクターがアイテムを掴んだ時にOffsetを設定することで、目的通りの動きになりました。

var offset = itemTransform.position - handTransform.position; //アイテムの位置 - 手の位置
parentConstraint.SetTranslationOffset(0, offset);
parentConstraint.constraintActive = true;

参考リンク

広告