スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

UniryのLayer機能の実用例

Layerの具体的な活用例についてあまり書かれていないようなので自分で書いてみる。
初心者向けの内容です。というか自分自身最近までレイヤー使ってませんでした(´Д`;)

下の画像には
・地面
・プレイヤー
・エネミー
・アイテム

の4つのオブジェクトがあります。見にくくてすみません(>_<)
レイヤー説明
そしてここには
・地面のコライダ
・プレイヤーのCharacter Controller(青)
・エネミーのCharacter Controller(緑)
・アイテムのコライダ(赤)
・アイテムのコライダ(黄)

の5つのコライダがあります。
アイテムの赤いコライダはアイテムが地面に乗るために、
黄色いコライダはトリガーで、プレイヤーが触れると拾われる処理を行うために付けてあります。

さて、この状態で動かすとエネミーがアイテムに引っかかってしまいます。
なのでレイヤーを使ってそれぞれに必要な当たり判定だけとるようにします。

まず下の画像のようにそれぞれのGameObjectのInspectorからレイヤーを設定します。
レイヤーを開くと一番下にあるaddLayerでレイヤーを増やすことができます。
inspectorのレイヤー

それからメニューバーで
 Edit→ ProjectSettings→ Physics
と選択するとInspectorにPhysicsManagerが出るのでそこでお互いの当たり判定を設定します。
赤枠で囲っている部分が今回加えたレイヤーの設定です。
どのLayerがどのGameObjectに付けられているか名前でわかりますよね?
レイヤー設定

EnemyとItemColliderのチェックを外したのでエネミーがアイテムに引っかからなくなっています。

ItemTriggerにも注目してください。
ItemTriggerはPlayerとしか当たり判定を行わないようになっていると思います。
これまではアイテムが拾われる前にTag等で接触した相手がプレイヤーかどうか
判断する必要がありましたが、それが必要なくなるのでスクリプトが簡単になります。

また、エネミーを倒したらアイテムが出現するような仕様の場合、アイテムが同じ場所に出現すると
反発し合って飛び散ってしまいますがItemCollider同士の接触をなくせば飛び散らなくなります。


こんな感じでレイヤーを活用することによって自分はやりたいことがいくらか簡単にできるようになりました。
・味方には攻撃が当たらない
・ギミックに反応するのはプレイヤーだけ
・プレイヤーだけが入れる安全地帯
など、いろんなことに役立つ・・・というか必要となると思うのでどんどん使っていこうと思います。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

コブン0号

Author:コブン0号
開発中止になってしまったDASH3復活を願ってゲームを製作中です。
Unity, Blender, Illustrator, GIMP, Aviutl等を勉強中です。
ツイッター:https://twitter.com/KobunNo0
メール:jisaku.dash3(半角アットマーク)gmail.com

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。