ゲーム制作日記

ゲーム作りで気になった事をつづるブログ

Unityで衝突判定する時のよく忘れてしまうアレ

今回はUnityで衝突判定を付けるとき、よく忘れてしまうアレの話。

 

結論からいうとRigidBodyコンポーネントの追加忘れ

衝突判定させたいオブジェクトのどちらかに必ずRigidBodyを付けないと処理を拾えない…

なので、いろいろな物に衝突することが多い操作キャラには必須コンポーネントといえる(重力を使わないときは切っておく)

 

 

話は少し変わって衝突判定でコライダーのTriggerをオン/オフにした時の挙動について。

Triggerをオフにしたままだと触れる物体、オンにすると通り抜けれる物体になるので、壁等のぶつかってほしいオブジェクトはオフ、チェックポイント等はオン(Mesh Renderはオフにして見えなくさせる、もしくは半透明の物体を使う)と使い分ける

(これがわからなくて、Triggerをオンにしたら衝突判定ができるんじゃないか?とかしばしば…)

 

(初投稿)スマホ向けのUI達のpositionをいじる時

Unityでスマホ向けのゲームを作っている、はるとこです。

ゲーム作る途中で躓いたこと等をメモのように簡単な記事にしていこうと思います。

 

初投稿はスマホ向けのアプリで避けて通れない、画面解消度の違いによるUIの設定です(Positionで躓いた…)

スマホ向けUIの大きさはCavans Scalerの UI Scale ModeをScale With Screen Size に変えてあげることで画面の大きさごとにCanvasの下の階層(子要素)が自動的にサイズ調整をしてくれます。

f:id:harutoko-dev:20180521141848p:plain

 

 

そして、子要素達のPositionをいじろうとすると画面のサイズごとに3D空間上でのポジションも変わってしまい、大きく動いたり小さく動いたりしてしまいました…

 

その問題はanchoredPositionをいじる事で解決。

どうやらRectTransformで表示されているPosX、Pos y、Pos zの値はanchoredPositionだった模様…

f:id:harutoko-dev:20180521143017p:plain

 

RectTransformでもPositionをいじれるんだけど画面サイズで位置が変わってしまうのでanchoredPositionを使うのが良さそう