弾痕の作り方

Unity
    public GameObject prefab;
    Ray ray;
    RaycastHit hit;


    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit, 100f))
            {
                // ヒットした位置+面の前方向にずらす
                Vector3 pos = hit.point + (hit.normal * 0.01f);
                // 第一引数:弾痕オブジェクトの正面となる軸
                // 第二引数:向けたい方向
                Quaternion rot = Quaternion.FromToRotation(-1 * prefab.transform.forward, hit.normal);

                // オブジェクト作成
                Instantiate(prefab, pos, rot);
            }
        }
    }

Materialは、StandardシェーダーのFade
HDRPプロジェクトであればDecalを使うと良いです。

標準オブジェクトはPlaneとQuadのどちらかで迷いますが、
Planeは三角ポリゴンが200個
Quadは三角ポリゴンが2個
なので、Quadを使うのがおすすめです。

コメント

  1. ちょんまげ より:

    わかりやすかったです。

タイトルとURLをコピーしました