我正在通过烟雾颗粒扑灭火焰粒子,所以我想检查对象是否被破坏,如果对象被破坏然后加载新场景。 这是我的脚本,,,,,,任何建议?
using UnityEngine;
using System.Collections;
public class hey : MonoBehaviour {
void Start(){
GetComponent<ParticleSystem> ().emissionRate = 0;
}
void Update(){
if (Input.GetMouseButtonDown (1)) {
GetComponent<ParticleSystem> ().Emit (20);
}
}
void OnParticleCollision(GameObject obj)
{
Destroy (obj, 2.0f);
//here i want to check and then load new scene..
//I try that thing, but failed..nothing happen
if (object.Equals (obj, null)) {
Application.LoadLevel (7);
}
//also this one, but nothing happens
if(gameObject.tag=="fire123"==null){
Application.LoadLevel (7);
}
// also this one too, but failed :-(
void OnDestroy(){
Application.LoadLevel (7); } }
答案 0 :(得分:2)
问题:Destroy(obj, **2.0f**);
由于延迟,在评估if时不会销毁项目。
因此要么不要使用延迟,要么使用OnParticleCollision
协程并使用yield return new waitForSeconds
或将检查放在其他地方,例如Update
或在脚本中使用OnDestroy
在被破坏的粒子上。