C# 如何将粒子系统附着到碰撞器,或如何使用角色移动粒子系统

C# 如何将粒子系统附着到碰撞器,或如何使用角色移动粒子系统,c#,unity3d,C#,Unity3d,有人知道如何在脚本中将粒子系统附加到碰撞器上吗? 我有我的角色,我想在头部点击的位置上有血液粒子系统。我已经用下面的代码实现了这一点,但现在我需要将它与碰撞器(与角色)一起移动。因为当我移动我的角色(我使用LeanTouch脚本)时,血液会留在场景中创建的地方。 我使用的代码,在相机上: using System.Collections; using System.Collections.Generic; using UnityEngine; public class ActionOnTapO

有人知道如何在脚本中将粒子系统附加到碰撞器上吗? 我有我的角色,我想在头部点击的位置上有血液粒子系统。我已经用下面的代码实现了这一点,但现在我需要将它与碰撞器(与角色)一起移动。因为当我移动我的角色(我使用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!"); }

        }
    }
}

必须将粒子附加到角色对象

必须将粒子附加到角色对象

这样做是正确的。您需要做的就是在孩子时添加血样对象,这样您就可以执行以下操作:
var ps=实例化(blood、rhInfo.point、transform.rotation);ps.transform.parent=转换

因此,请查看并根据您的Unity版本,您的操作是正确的。您需要做的就是在孩子时添加血样对象,这样您就可以执行以下操作:
var ps=实例化(blood、rhInfo.point、transform.rotation);ps.transform.parent=转换

因此,根据您的Unity版本,您应该将其作为子对象放入。这应该行得通

Instantiate(blood, rhInfo.point, transform.rotation, rhInfo.point.transform);

您应该作为子对象输入。这应该行得通

Instantiate(blood, rhInfo.point, transform.rotation, rhInfo.point.transform);

必须将粒子父对象设置为碰撞器。首先检查碰撞位置,然后在该坐标上实例化它,并将父对象设置为“碰撞器”。此外,还可以使碰撞法线设置粒子旋转。必须将粒子父对象设置为“碰撞器”。首先检查碰撞位置,然后在该坐标上将其实例化,并将父对象设置为“碰撞器”。此外,还可以使碰撞法线设置粒子旋转。