2つのオブジェクトが順繰りで動くように、スクリプトを作成してみましょう。
ある位置に来たときに、左へワープして、また次のオブジェクトとして移動します。
2つのCubeが隙間なく、ループ移動をくり返しています。
関連記事:
背景を縦スクロールでループさせる方法
床オブジェクトを順繰りで横移動
床のスクロールを無限ループ
音ゲーのノーツみたいなオブジェクト動作
指定した座標(目的地点)へ行く
Updateを使わずに特定の座標まで移動
触れると他の位置へワープする
取れば次のオブジェクトが出現する
すき間なくループ移動をくり返す
Cubeを2個作り、それぞれサイズを変更します。
2つ目のCubeは、X座標-3に配置します。
わかりやすいように、それぞれのCubeに色をつけました。
シーンビューではこのように見えています。
TurnAround.csを作成し、2つのCubeに追加します。
TurnAround.csを記述します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
using System.Collections; using System.Collections.Generic; using UnityEngine; public class TurnAround : MonoBehaviour { private float xLength; private float speed = 3.0f; void Start() { //CubeのXサイズを取得 xLength = this.transform.localScale.x; } void Update() { transform.Translate(new Vector3(Time.deltaTime * speed, 0, 0)); if (transform.position.x >= xLength) { //Xサイズの2倍の値を取得 Vector3 distance = new Vector3 (xLength * 2, 0, 0); //distanceの分だけ左方向へ移動 transform.position = transform.position - distance; } } } |
ゲームプレイしてみましょう。
CubeのX幅を取得し、その2倍のサイズ分、左方向へ移ります。
このような仕組みを利用して、2つのオブジェクトを順繰りに利用して、移動をくり返すことができます。
関連記事:
背景を縦スクロールでループさせる方法
床オブジェクトを順繰りで横移動
床のスクロールを無限ループ
音ゲーのノーツみたいなオブジェクト動作
指定した座標(目的地点)へ行く
Updateを使わずに特定の座標まで移動
触れると他の位置へワープする
取れば次のオブジェクトが出現する