読者です 読者をやめる 読者になる 読者になる

Unityで多重スクロール

kameです。
ゴールデンウィークはPACE SHOWER SWEET LOVE SHOWER@日比谷野音でキラキラ武士してきました。

シューティングの背景の多重スクロールが重い問題が
アドバイス頂いて解決したのでメモ。
多重スクロールというのはよくあるこれです。

解決編

f:id:kame0_0:20130510011327p:plain

  • 四角い板ポリに背景のマテリアルをつける。
  • マテリアルのテクスチャのOffsetを移動させてアニメーション
  • シェーダーはUnlit/Transparent
public GameObject bg1;
public float scrollSpeed1 = 0.1f;
void Update () {
	bg1.renderer.material.mainTextureOffset = new Vector2 (bg1.renderer.material.mainTextureOffset.x - Time.deltaTime * scrollSpeed1,0);
}

また何か気づきがまたあれば改善します。
GALAXY NEXUSでFPSが56出るようになった!
一番悪い時は衝撃の15FPS出ませんでした(他も含めてですが)。

そこまでに試したこと

FPSは背景だけではなく、キャラと複数の敵とUI含めてみていました。
でもまあ、ほぼ背景の重さでしたが。。

シェーダー(最低条件はPngの透過が読み込めること)

  • Transparent/Cutout/SoftEdgeUnlit

正直何も考えていなかったです。シェーダーってなんぞや?
12FPSをたたき出す。

  • Trannsparent/Diffuse

やっとシェーダーが重さに直結することに気づく。
Trannsparent内ではよさそうだったもの。25PFS

  • Unlit/Transparent

背景のスライド方法を変更しても大きくは変わらなかったので、twitterで嘆いたところアドバイスを頂きましたm(_ _)m

50PFS前後に!
ここまで変わるとは思っていなかったです。恐るべしシェーダー。
ありがとうございました。

unlitとは「点火していない。明かりがついていない。」なるほど。

背景のスクロール方法

  • 背景の板を移動

もののけ大戦のスライドで大きいパネルを移動させるのは重いと書いてあったので、スライドに習ってマテリアルの移動に方針を変更。
作りはシンプルになったもののFPSは3軽くなった程度でした。