如何将粒子系统附加到对撞机或如何使用角色移动粒子系统

时间:2017-08-07 08:34:11

标签: c# unity3d

有人知道如何将粒子系统附加到脚本中的对撞机吗? 我有我的角色,我想在头上的水龙头位置上安装血液颗粒系统。我已经设法使用下面的代码执行此操作,但现在我需要将它与对撞机(与角色一起)一起移动。因为当我移动我的角色(我使用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!"); }

        }
    }
}

3 个答案:

答案 0 :(得分:2)

你做得对。您需要做的就是在孩提时添加血液对象,这样您就可以做到这样的事情:  var ps = Instantiate(blood, rhInfo.point, transform.rotation); ps.transform.parent = transform; 因此,请查看thisthis,具体取决于您的Unity版本

答案 1 :(得分:1)

您应该将其作为子对象放入。这应该有用。

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

答案 2 :(得分:0)

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