トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

【Unity1week】距離で判定&透明オブジェクトで光を通す【完成】

Unity1week用ゲーム製作の続きです。完成しました。

bibinbaleo.hatenablog.com

距離を取る

前回当たり判定がうまくいかなくて死んでましたが、距離で判定したらいいじゃんと思いついてやったら、しっかり動きました。

blog.livedoor.jp

distance関数で距離が取れます。

docs.unity3d.com

部屋のとある窓から出たらゲームクリアにしたかったので、距離を測るようのオブジェクトを部屋の隅に二つ置いて、両方のオブジェクトとプレイヤーの距離がある一定のサイズを超えたらシーン遷移するようにしました。

長さはデバッグログを見ながら地道に計りました。

Unity/distance at master · bibinba/Unity · GitHub

光を通す

transportマテリアルを適用しても、directionalライトの光が通りません。

 オブジェクトのcast shadowをOffにしたら通ります。

f:id:bibinbaleo:20170728211804p:plain

f:id:bibinbaleo:20170728211915p:plainf:id:bibinbaleo:20170728211919p:plain

ちなみにTransportやfadeにしたものは影を受けないみたいです。

f:id:bibinbaleo:20170728212918p:plain

まあ透明な物体に影落ちて欲しくないときもあるか。今回は落ちて欲しかったけど。せめて透明度によって濃さが変わったらいいんだけど。あっでも現実の物体も落ちないのかな?

それこそARで使ってる影だけ受ける透明シェーダーとか書かないといけないのかな

シーンが暗くなる問題

一度でたシーンに再び戻ってくると、暗くなってしまいます。

d.hatena.ne.jp

2017.1ではGlobal mapsの「Auto Generate」のチェックを外して、「Generate Lighting」を押して光を焼くとシーンに戻ってもそのままでした。

f:id:bibinbaleo:20170728224911p:plain

Global maps初めて触ったけどなんなんだろう。Sceneのは焼かなくていいんだ。

うまくいかないときはシーンを変える

前回、当たり判定とかごじゃごじゃしてたら元に戻らなくなったので、新しくシーンを作り一から構成し直しました。

と言っても、家などのオブジェクトはプレファブ化したので、改めて設定したのはスクリプトのアタッチとライティングぐらいです。

そしたらうまくいきました!もっと早くこうしとけばよかった。

ちなみに前回コライダーを設定したのに通り抜けてしまったのはin triggerにチェックを入れていたのと、Playerに無駄なものをつけていたから?だと思います。

一から必要なものだけをつけていけばいいのです。

完成 

金曜日に完成しました。

webglで書き出すときPlayer settingで大きさを設定しないと変な感じになりました。unityroomのデフォルトが960*540だったのでそれに合わせました。Gameウィンドウサイズだけ変えても意味がない。

ただ設定した後も下の方に黒い線が表示されてしまいました。

よくわからないけどもういいや。

https://unityroom.com/games/summer_escape

タイトルは「夏の部屋からの飛行脱出」です。

f:id:bibinbaleo:20170724164643p:plain