2019年6月23日日曜日

unity 当たったところからパーティクル

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);
		}
	}
}

0 件のコメント:

コメントを投稿