1.床を往復させる
移動させること自体は簡単である。
移動でも使用したtranceform.positionで移動させる。が、このままではプレイヤーが床において行かれてそのままずり落ちてしまう。
これはこれで仕様にできなくもないが難易度爆上がりなのでちゃんとプレイヤーも一緒に動かせるようにする。
前回のゲームオーバー、ゲームクリアの判定に使用した、OnTriggerEnter2Dを使用して足下の剛体と動く床の剛体が接触していることを確認してみる。
function OnTriggerEnter2D(col:Collider2D){
if(col.tag == "block"){
spd = spd*(-1);
}
if(col.tag == "Player"){
ridden = true;
}
}
また、プレイヤーのゲームオブジェクトを
player = GameObject.Find("sigure");
として探しだします。動く床とプレイヤーが接触している状態をriddenとしているのでfunctionUpdataに、
transform.position.x += spd;
if(ridden){
player.transform.position.x += spd;
}
上のように書くことで、実際同時に動かすことには成功したが
このままでは床からはなれても床と同じ方向に動き続けてしまう。
床に足が着いているときだけriddenをtrueにして欲しいので、OnTriggerStayと、OnTriggerExitを使用する。
function OnTriggerStay2D(col:Collider2D){
if(col.tag == "Player"){
ridden = true;
}
}
function OnTriggerExit2D(other: Collider2D) {
ridden = false;
}
この方法で、床の動く方向をY軸方向にすると縦に動く床ができる。
この辺でとりあえずこのシリーズは一旦終了です。
よく調べなくてもか●これは二次創作ゲーム禁止だったので、東方にでも差し替えておきます#そのうち