ネックは着替え処理だなー
— りゅーあん (@ryuan_p) February 10, 2020
テクスチャだけ差し替える方法が見つからないから、テクスチャを替えた別モデルを読み込まないといけなさそう#ココのコイン落とし#IndieDev#IndieGameDev #Unity pic.twitter.com/SzlPOTJgfo
こんな感じにタイル画像の背景を無限スクロールさせる方法です。
いくつか方法があり、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; }
コメント