パーティクルシステムをスクリプトのコライダーに接続する方法を知っていますか? 私は私のキャラクターを持っており、私は頭のタップの位置に血液粒子システムを持っていたい。私は以下のコードでこれを行うことができましたが、今度はキャラクターと共にコライダーと一緒に移動する必要があります。私がキャラクターを動かすと(私はこれに対してLeanTouchスクリプトを使用します)、血液はシーンで作成された場所に残されています。 私が使用するコードは、それがカメラの上にある:パーティクルシステムをコライダーに接続する方法またはパーティクルシステムを文字で移動する方法
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ActionOnTapOrClick : MonoBehaviour {
public ParticleSystem blood;
private void Update()
{
if(Input.GetMouseButtonDown(0))
{
Ray toTouch = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit rhInfo;
bool didHit = Physics.Raycast(toTouch, out rhInfo);
if(didHit && rhInfo.collider != null)
{
Debug.Log("You've tapped on the " + rhInfo.collider.name);
blood.transform.position = rhInfo.point;
Instantiate(blood, rhInfo.point, transform.rotation);
}
else { Debug.Log("You need to tap on the head!"); }
}
}
}
パーティクルの親をコライダーに設定する必要があります。最初にあなたの衝突位置を確認し、親をcolliderに設定してその座標にインスタンス化します。 – BlackMB
また、衝突の法線を取得してパーティクルの回転を設定することもできます。 – BlackMB