Unity の Sprite を 3D で使いたいと思います。
3DでSpriteを使いたい

Sprite
Unity の Sprite は、テクスチャとメッシュを組み合わせた、2D/3Dの両方で画像を表示できる描画システムです。
ドキュメント
公式ドキュメントになります。

こちらはリファレンスになります。
画像のインポート
Spriteアセットは画像をインポートして作成します。
UnityのAssetsフォルダ以下に画像ファイルを配置すると自動でインポートされます。
Inspector から Texture Type を Sprite (2D and UI) に変更します。
Sprite Mode は Single に設定します。
Apply ボタンを押して適用します。

シーンに配置する
Project ビューの Sprite アセットを Hierarchy ビューにドラッグ&ドロップすると、シーンに配置できます。
SpriteRenderer コンポーネントが付いたゲームオブジェクトになります。
Transform で座標を動かしたりできます。

Sprite の当たり判定
シーンに HitTest という名前の空のゲームオブジェクトを作成します。
下記のスクリプトを作成して、HitTest ゲームオブジェクトのコンポーネントとして追加します。
シーンに配置した Sprite のゲームオブジェクトに Collider(BoxColliderなど)を追加します。
Unityエディターを再生して、マウスポインタを動かすと、カーソルの場所にあるゲームオブジェクト名がコンソールにログ出力されます。
using UnityEngine;
public class HitTest : MonoBehaviour
{
void Update()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 1000f)) {
Debug.Log("Hit: " + hit.collider.name);
}
}
}
残念ながら、3Dで Sprite の透明部分を省く当たり判定は出来ないようです。
BoxCollider などで近似の当たり判定を作りましょう。
2Dでは、PolygonCollider2D が使えるようです。
まとめ
3Dで、Unity の Sprite を使ってみました。
残念ながら、3Dで透明部分を省く Sprite の当たり判定は出来ないようです。
画像の表示だけなら簡単にできて手軽に利用できます。
コメント