UnityでTPS視点での簡易的な壁透過
今回の課題
UnityでFPS視点キャラを作成するとぶち当たる問題として「壁で画面が何も見えなくなる」という物がありました。
![](https://assets.st-note.com/img/1666936546429-UU8umpgRSi.png?width=1200)
![](https://assets.st-note.com/img/1666936567718-lx80wqoRge.png?width=1200)
こんな感じで。このままだとプレイヤーへのストレスが大きいので簡単に壁透過?が出来る方法をメモ的な感じで残しておきます。
やり方
①Unityのカメラはレイヤーによって「描画する」「描画しない」を切り分け られるので描画しないレイヤーを作成する
![](https://assets.st-note.com/img/1666936753207-gIppqlPvPW.png)
![](https://assets.st-note.com/img/1666936871892-0BVF73PvjD.png)
②カメラからキャラクターに向かってRayを飛ばし、当たったオブジェクトのレイヤーを描画しないレイヤーに変更する。
![](https://assets.st-note.com/img/1666937045323-fWoOiHVtGJ.png)
③これだけで壁オブジェクトを透過することができるようになります。
![](https://assets.st-note.com/img/1666937309952-TGRz96lbCM.png?width=1200)
![](https://assets.st-note.com/img/1666937324149-pMpDmbqpoF.png?width=1200)
問題点
このスクリプトは素早く実装することはできますが、オブジェクトを保持し、そのレイヤーを操作する方法の為オブジェクト1つ分しか透過することができません。なので壁が2つ重なっているなどの状況では。。。
最後に
本当の本当に簡単な壁透過方法でした。他に良いやり方を知っている方がいたらTwitterDMなどで教えていただけると幸いです。
@sota_reta2