2017-08-07 40 views
0

有人知道如何將粒子系統附加到腳本中的碰撞器嗎? 我有我的角色,我想在頭上的水龍頭的位置上有血液系統。我設法用下面的代碼來做到這一點,但現在我需要將它與對撞機(與角色)一起移動。因爲當我移動我的角色(我使用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

您必須將您的粒子父項設置爲碰撞對象。首先檢查你的碰撞位置,然後在父母設置爲collider的座標上實例化它。 – BlackMB

+0

你也可以讓你的碰撞正常來設置你的粒子旋轉。 – BlackMB

回答

0

必須粒子附着在人物對象

2

你這樣做是正確的。所有你需要做的是增加你的血液對象作爲一個孩子,所以你可以做這樣的事情: var ps = Instantiate(blood, rhInfo.point, transform.rotation); ps.transform.parent = transform; 因此,請檢查thisthis根據您的統一版本

1

你應該把在爲子對象。這應該工作。

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