Unity

Rigidbodyのfreezeにチェックを入れたり外したりする



突進してくるボスと戦闘中に壁に挟まれるとプレイヤーが上に持ち上げられて壁を越えてしまうというバグが出てしまった。

そこでボス戦に突入したらRigidbodyのFreeze PositionのYにチェックを入れて上に上がらないようにしてボス戦が終わったらこのチェックを外して再び上下に移動できるようにしたい。

public Rigidbody rigidy;        //rigidbody

.
.
.

//Freezeしたいタイミングで

this.rigidy = this.GetComponent<Rigidbody>();
this.rigidy.constraints = RigidbodyConstraints.FreezePositionY;      //これでYだけフリーズされる

//どうもfreeze使うとRotationまでチェック外れるぽいのでチェック入れる
this.rigidy.freezeRotation = true;	

これでボス戦だけはY軸方向に移動不可能

ボス戦が終わったらFreezeのチェックを外してまた段差を移動できるようにするんやけど、特定の項目だけチェック外すいうのができんらしい。

this.rigidy.constraints = RigidbodyConstraints.None; 

まずこれで全部のチェックを外す。するとRotationも外れてしまうので
Rotationに再びチェックを入れる

this.rigidy.freezeRotation = true;
これでOK ^^v

↑このゲームはこちらで公開中↓

Google Play で手に入れよう

-Unity

© 2024 Bou.O The World Powered by AFFINGER5