有人知道如何将粒子系统附加到脚本中的对撞机吗? 我有我的角色,我想在头上的水龙头位置上安装血液颗粒系统。我已经设法使用下面的代码执行此操作,但现在我需要将它与对撞机(与角色一起)一起移动。因为当我移动我的角色(我使用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!"); }
}
}
}
答案 0 :(得分:2)
你做得对。您需要做的就是在孩提时添加血液对象,这样您就可以做到这样的事情:
var ps = Instantiate(blood, rhInfo.point, transform.rotation); ps.transform.parent = transform;
因此,请查看this和this,具体取决于您的Unity版本
答案 1 :(得分:1)
您应该将其作为子对象放入。这应该有用。
Instantiate(blood, rhInfo.point, transform.rotation, rhInfo.point.transform);
答案 2 :(得分:0)
您必须将粒子附加到角色对象