我將保持簡短和簡短,但我目前有一個粒子系統,即使我的碰撞有效,它似乎也沒有渲染。我很難理解其他人的工作,所以我無法找到我能理解的解決方案。這是我的代碼:public float speed;public Rigidbody rb;public int health;private float knockback;private float knockup;public ParticleSystem Eparticle; //*** variable for particle system ***// Use this for initializationvoid Start(){ rb = GetComponent <Rigidbody>(); knockback = 100f; knockup = 250f;}void OnCollisionEnter(Collision col){ if (col.gameObject.name == "enemy") { health = health - 20; rb.AddRelativeForce(Vector3.back * knockback); rb.AddRelativeForce(Vector3.up * knockup); Destroy(col.gameObject); Instantiate(Eparticle); } if (col.gameObject.name == "endgoal") { SceneManager.LoadScene("level 1"); }}我的實例化(Eparticle)行做錯了什么?有人可以通過解決方案告訴我嗎?謝謝 :)
1 回答

慕碼人2483693
TA貢獻1860條經驗 獲得超9個贊
您應該Instantiate
在希望粒子預制出現的位置調用該方法。你可以做這樣的事情......
Instantiate(Eparticle,transform.position,transform.rotation);
實際上,您還可以在運行時創建(實例化)游戲對象,如下所示......
GameObject obj= Instantiate(Eparticle,transform.position,transfrom.rotation) as GameObject;
這樣,您就可以對實例化的游戲對象進行某種“控制”。例如,您可以在使用對象后通過調用該Destroy()
方法將其銷毀。例如:
Destroy(obj,2f);//Destroys the created object after 2 seconds.
當然,如果您要實例化和銷毀大量對象,這不是一個好方法。為此,您應該閱讀有關對象池的信息。
- 1 回答
- 0 關注
- 157 瀏覽
添加回答
舉報
0/150
提交
取消