clusterイージースクリプト 03乗り物編
まだ「clusterイージースクリプト」のインストールが済んでいない人は先に済ませてくださいね。
こちらの記事からどうぞ。
乗り物サンプル
「イージースクリプト」フォルダの「乗り物サンプル」プレハブをシーンにドラッグアンドドロップし、Unityの再生ボタンを押してください。
前後左右で移動、Space/Shiftで上昇下降ができます。
なお、床まで下降するとそれ以上さがりません。これはYの下限を0にしているからです。
(なお座ったポーズにはなりませんが、clusterにアップロードするとちゃんと座ります)
スクリプトの内容は?
「乗り物スクリプト.js」はちょっとこれまでより長いですが、大したことはありません。
要は
- 左右入力にはrotate
- Space/Shift入力と前後にはmoveForward
- 動くスピードには「speed」と「rotSpeed」で最初に決めた値を使う
となっているだけです。
const speed = 3;
const rotSpeed = 120;
ee.main = () => {
if(rideRight){
rotate(0,rotSpeed,0);
}
if(rideLeft){
rotate(0,-rotSpeed,0);
}
if(rideUp){
moveForward(0,speed);
}
if(rideDown){
if(getPos().y > 0) {
moveForward(0,-speed);
}
}
if(rideForward){
moveForward(speed);
}
if(rideBack){
moveForward(-speed);
}
}
また、下降のとき(rideDownのとき)だけ、さらにgetPosを使って「Yが0より大きいかどうか」をチェックしています。
改変
改変もそろそろ慣れましたかね。
プレハブ展開、スクリプト複製・名前変更、そのスクリプトをCS Combinerに割り当て、でしたね。
忘れていたら「ボタン編」などに戻ってチェックを。
では、元のスクリプトはすべて維持しつつ、最後に
ee.ride = (isOn) => {
if(!isOn){
warpFirstPos();
}
}
ee.playerLost = () => {
warpFirstPos();
}
これを追加してください。もちろんコピペでいいですよ。
こんな風に、元々あったスクリプトの最後に追加する
上書き保存、Unityに戻って[Ctrl]+[R]の再読み込みを忘れずに。
再生して乗り物から「降りる」と、乗り物が初期位置に戻ります。
空中で降りると何もないところから落下したり
ee.rideは「乗る」「降りる」のときに呼ばれ、「乗る」だとisONがON、「降りる」だとOFFになります。
そしてif(!isON)は「ONじゃなかったら」という意味。
!はビックリしているわけではなく、「~じゃなかったら」という意味になるんですね。
戻るにはwarpFirstPos() というのを使っています。
Discussion