Unityでタイルスクロール

スポンサーリンク
Unity
スポンサーリンク

こんな感じにタイル画像の背景を無限スクロールさせる方法です。
いくつか方法があり、Planeなどの3Dオブジェクトにテクスチャの座標をスクリプトで変更する方法、シェーダでテクスチャのUVを動かす方法、2枚のスプライトを並べて交互に表示する方法、テクスチャではなくスプライトをRepeatにしてSetTextureOffset()を使う方法などありますが、
私はRawImageのuvRectのx,yをスクリプト側で変更するやり方で実装しました。手順としては

  • CanvasにRawImageを配置。サイズは画面より広く
  • Textureを設定。Textureのwrap modeはRepeat
  • 以下のスクリプトをアタッチ
RawImage tile;
void Start(){
   tile = gameObject.GetComponent<RawImage>();
}
void Update(){
   tile.uvRect = new Rect(x, y, tile.uvRect.width, tile.uvRect.height);
   x -= speedX * Time.deltaTime;
   y -= speedY * Time.deltaTime;
}
1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
読み込み中...

コメント

タイトルとURLをコピーしました