🚗

clusterイージースクリプト 03乗り物編

2024/07/20に公開

まだ「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