【Unity入門】Raycastで弾痕を作りながら学ぶ|Transformの親子関係までのシリーズまとめ

広告

このシリーズでは、「マウスでクリックした場所に弾痕を残す」という一つの題材を使って、UnityのRaycastからTransformの親子関係までを順番に学びます。

最初はカメラからRayを飛ばす話ですが、最後はUnityの3D空間そのものの考え方につながります。

シリーズ全体の流れ

Camera.main
↓
ScreenPointToRay
↓
Physics.Raycast
↓
RaycastHit
↓
hit.point / hit.normal
↓
Instantiate / Destroy
↓
SetParent
↓
position / localPosition
↓
rotation / localRotation
↓
localScale / lossyScale
↓
Transform

この順番で読むと、前の記事で学んだことが次の記事の土台になります。

第1章:クリックした場所を調べる

まず、マウスの位置からRayを作り、何に当たったかを調べるところまでを学びます。

  1. UnityのCamera.mainとは? GetComponent<Camera>()との違いを理解しよう
    Rayを作るために必要なCameraの取得方法を整理します。
  2. UnityのRaycastHitには何が入っている? hit.point・distance・normal・colliderを理解しよう
    Raycastで返ってくるRaycastHitの中身を、図で確認します。

カメラからRayを飛ばしてPhysics.Raycastで当たり判定をとり、RaycastHitで当たった位置と面の向きを得る

第2章:当たった場所に弾痕を残す

hit.pointとhit.normalを使って、当たった場所に物を置き、時間がたったら消します。

  1. Unityでクリックした場所にマーカーを置く|hit.pointとhit.normalを実際に使ってみよう
    当たった位置と面の向きを使って、マーカーを置きます。
  2. Unityでクリックした場所に弾痕を残す|RaycastとDestroyを使ってみよう
    マーカーを弾痕に変えて、Destroyで一定時間後に消します。

hit.pointとhit.normalを使い、Instantiateで弾痕のプレハブを生成する

Destroyで弾痕を一定時間後に消す

第3章:壁の子にしてTransformを学ぶ

壁が動いたとき、弾痕だけその場に取り残される問題から、Transformの親子関係を学びます。

  1. Unityで弾痕を壁の子オブジェクトにする理由|Transformの親子関係を理解しよう
    SetParentで弾痕を壁の子にして、壁と一緒に動くようにします。
  2. Unityのtransform.positionとlocalPositionの違い|世界から見た座標と親から見た座標
    世界から見た位置と、親から見た位置の違いを学びます。
  3. Unityのtransform.rotationとlocalRotationの違い|世界から見た向きと親から見た向き
    位置と同じ考え方で、向きを世界基準と親基準に分けて考えます。
  4. Unityのtransform.localScaleとlossyScaleの違い|親のScaleは子にどう影響する?
    親のScaleが子の大きさや位置にどう影響するかを確認します。

SetParentで弾痕を壁の子にすると、壁が動いても弾痕がついてくる

Position・Rotation・Scaleのワールド基準とローカル基準の違い

第4章:Transformを総まとめする

  1. UnityのTransformとは結局何なのか|Position・Rotation・Scaleと親子関係を総まとめ
    Position・Rotation・Scaleとworld・local、そして親子関係を一枚に整理します。

Transformが管理するPosition・Rotation・Scale・親子関係

このシリーズで覚えておきたいこと

最後に、シリーズ全体で一番大事な整理だけを書いておきます。

世界から見る

position
rotation
lossyScale

と、

親から見る

localPosition
localRotation
localScale

の2つの見方があります。

そして、SetParent()で作る親子関係によって、親の移動・回転・Scaleが子へ影響します。

迷ったときは、localが付いていたら「親から見た値」と考えると整理しやすくなります。

座標系をもっと知りたい人へ

このシリーズで出てきた座標の考え方を、別の角度から確認できる記事です。

まず読む基本

ScreenPointを実際に使う

RayとTransformにつなげる

おわりに

弾痕を作るだけの小さな題材でも、Raycast、座標、回転、Scale、親子関係と、Unityの基本がたくさん詰まっています。

気になる章から読み返して、実際にUnityで値を表示しながら確認してみてください。

訪問数 16 回, 今日の訪問数 16回

広告

Physics,Unity

Posted by hidepon