今回は、上記の動画の羽根の部分の制御方法について解説する
〇用意するもの
・羽根のモデルデータ
〇仕組み
ざっくり説明するとHinge JointのMotorをオンにして開放し、オフにしてSpringの力で元に戻るようにしているだけ
設定の仕方としては下記の通り
1 UnityのHinge Jointを羽根のモデルに追加
2下図のように回転する軸にHinge JointのAnchorを調整
3 Use Springをオンにして、Springの強さを設定
4 MotorのTarget Verocity、Forceを設定
回転速度と回転する強さという感じ?
5 Limitsにて回転する範囲を設定
Inspectorでの設定は以上
6 スクリプトでMotorのUse Motorの値をtrueにすると開放、falseにして閉鎖
void WingOnOff(bool flag)
{
if (flag) {
LeftWing.GetComponent<HingeJoint>().useMotor = true;
RightWing.GetComponent<HingeJoint>().useMotor = true;
}
else {
LeftWing.GetComponent<HingeJoint>().useMotor = false;
RightWing.GetComponent<HingeJoint>().useMotor = false;
}
}
〇備考
最初はHinge Jointを使わずに、スクリプトで回転させていたが、物理を無視した瞬間移動になってしまうみたいで、上から落ちてくる玉がぶつかってもすり抜けてしまった
Hinge Jointを使用したら、物理的な動作を行ってくれるようで、羽根に玉が当たると玉の流れが変わるようになり、羽根の閉まる強さで玉がはじかれるような動きも実現することができた
今回は以上
久々にUnity触った😅
— yosinaga (@harukich227) 2020年7月23日
本と我ながら暇だわ😭😭😭 pic.twitter.com/R4qQjsk14h