unity 当たったところからパーティクル
マウスカーソルの位置へRayを飛ばして、当たった部分の位置と法線ベクトルを取得。
パーティクルのオブジェクトをその位置と方向に設定する。
シーン設定
- 当たり対象物のキューブを回転して拡大して配置。
- どちらを向いているかわかりやすいパーティクルを1つ置く。
- mainCtrlスクリプトを取り付けた空ゲームオブジェクトが1つ。
- mainCtrlのオブジェクトはインスペクタでパーティクルオブジェクトを渡しておく。
mainCtrl.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class mainCtrl : MonoBehaviour {
void Start () {
}
[SerializeField] Transform particleObj;
RaycastHit hit;
// Update is called once per frame
void Update () {
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
bool is_hit = Physics.Raycast (ray, out hit, 1000);
if (is_hit) {
particleObj.transform.position = hit.point;
particleObj.rotation =
Quaternion.FromToRotation (transform.forward, hit.normal);
}
}
}