【Unity, Collider】衝突したオブジェクトをタグで選択してマテリアルを変更する

投稿者: | 2018年11月25日

フィア
カレン、2018/11/25 開催の「1 Week Game JAM」で

こんなゲーム作ったよ!

 

カレン
お疲れさま、なんとか期限に間に合ってよかったわね
フィア
ありがとっ! 結構大変だったけど、楽しかったよ!
カレン
ちなみに、ボールがバウンドするたびに、

マス目のCubeのマテリアルが変わってるみたいだけど、

これってCollierで処理してるの?

フィア
そうだよー。tagでCubeとBallに分けて、

Cubeと衝突したときだけマテリアルを変更してるの

カレン
なるほどねー

フィアもだいぶゲーム作れるようになってきたね

フィア
えへへ……カレンのおかげだよ……
カレン
ふふっ…どういたしまして
フィア
じゃあ今回は、衝突したオブジェクトのマテリアルを

変更する方法を紹介するよ!

カレン
今回作ったゲームはここからプレイできるから、

是非遊んでみてね!

※リンクは2018/11/25 20:00から有効になります

 

 

スポンサーリンク

 

 

 

目次

 

 

Materialを用意する

Assetsフォルダ内にResourcesフォルダを作成し、その中にMaterialsフォルダを作成してください。

Materialsフォルダの名前はなんでもいいですが、Resourcesフォルダは特別なフォルダなので、必ず「Resources」と命名してください

 

右クリック>Create >Material よりマテリアルを作成してください。

今回は、「CubeMaterial」と「SphereMaterial」の二つを使用します。

 

マテリアルをクリックして、インスペクターからShaderの設定を、「Legacy Shaders > Diffuse」に変えてください。

 

ここで、Main Color やテクスチャの画像を変更できます。

テクスチャを変更する際は、右上の黒枠内に画像をドラッグ&ドロップしてください。

 

もし、この段階でSphereやCubeのマテリアルを変更したい場合は、ヒエラルキーのSphereをクリックし、インスペクター状でマテリアルをドラッグ&ドロップしてください。

 

 

 

 

Colliderで衝突判定を付与する

衝突判定にはColliderコンポーネントを使用します。

詳しい衝突判定の説明は、以下のページを参照してください。

 

Colliderを利用するために、インスペクター上でSphereに RigidbodyをAdd Compornentしてください。

また、以下のコードを記入したスクリプトをSphereにアタッチしてください。

 

materials = Resources.LoadAll<Material>(“Materials/”); でMaterialsフォルダ内に入っているマテリアルを全て取得します。

ただし、フォルダ内の並び順で取得するので、順番を変更したいときは、名前を「0」や「1」のようにナンバリングしてください。

 

スクリプトをアタッチした方のオブジェクトのマテリアルを変更するときは、

gameObject.GetComponent<Renderer>().material = materials[0];

 

衝突された方をオブジェクトのマテリアルを変更するときは、

collision.gameObject.GetComponent<Renderer>().material = materials[1];

 

と記入してください。

 

これで実行すると、SphereがMinusマテリアル、CubeはPlusマテリアルがセットされます。

 

 

 

Tagを設定して選択的にMaterialを変更する

ヒエラルキー上のSphere をクリックしてインスペクターを開き、上部にあるTag をクリックしてAdd Tagを選択してください。

 

TagsのList is Emptyの右下に+マークがあるのでクリックし、New Taf Name に Sphere と Cube を追加してSave してください。

 

 

これでオリジナルタグが使えるようになったので、Sphere に Sphere タグを、CubeにCubeタグをセットしてください。

これでタグの設定は終了です。

 

スクリプトのコードを以下のように書き換えてください。

これで、Cubeタグが付いているCubeと接触した場合のみ、マテリアルが変化します。

 

 

 

終わりに

フィア
コライダーとタグを組み合わせれば、

仲間に攻撃を当たらないようにもできるよ

カレン
いろいろ応用できるから、是非挑戦してみてね

 

関連記事

 

 

 

忙しい人のためのUnity入門講座へ戻る

 

すくまりゲームズの人気記事