[Unity] skyboxをどの方向にでも回せるようにする

※これを書いた時点でのUnityのversion:2018 3.5f1


Unityのskyboxって、materialに付随するRotationパラメータをいじっても良いんですが、それって水平方向にしか回らないんですよね。
いろいろ調べてみましたが、やっぱりみなさん同じところで不満に思うようで、skyboxを回すスクリプトを書いてくださっている方もいました(注:外部リンク)
https://github.com/przemyslawzaworski/Unity3D-C-programming/blob/master/cubemap_generator.cs

ただ、このスクリプト、どうやら旧型の6面のskyboxにしか働かないようです(パノラマとかは多分サポートしてない)。

そこでこの記事では、どのようなskybox、というかskyにも通用するであろうもっともシンプルな方法をご紹介します。



やり方は、
1、cameraを2つ用意
2、片方のcameraはskyboxだけを映し、もう一つのcameraはそのあとで他のobjectを映す

以上。
気づいてしまえば簡単で、あとは細かいパラメータの設定の仕方を知っているかどうかだけです。

1、cameraを2つ用意
  デフォルトでMain Cameraがついてると思いますので、もう一つ追加しましょう。メニューバーのGameObjectから追加しても良いし、Hierarchyタブ右クリックでCameraを選択してもよし。

2、2つのcameraのパラメータの赤枠部分を以下のようにセット。
  ー Main Camera

  

  ー 2つめのcamera

  

Depthは描画順に相当します。

これでOK、2つめのcameraが空を映してるので、これを回せば好きな方向に空を回せます。
ただし、Game viewでのみ。Scene viewでは回らないので注意してね。



上の画像ではskyboxにAsset Storeで無料配布中のMilkyWay、オブジェクトとして適当にTerrainを置いています。

コメント

このブログの人気の投稿

旧バージョンのiMovieを入れる方法

TWRP公式サポートされてないAndroid端末でシステムインストールした話

[UTAU] Garagebandで作ったボーカルメロディーをUTAUに読ませる