gpt4 book ai didi

c# - 可收集的对象在我预制后不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:22 24 4
gpt4 key购买 nike

我有一个可收集的对象,它有另一个作为子对象的对象,它附加了粒子系统。当玩家遇到可收集对象时,应销毁可收集对象并播放粒子系统。当游戏对象放置在场景中时,以下代码可以正常工作,但是一旦我预制它并在代码中实例化它 - 粒子系统就不再起作用。

有什么想法吗?干杯!

using UnityEngine;
using System.Collections;

public class collectable : MonoBehaviour {

GameObject birdParticleObject;
ParticleSystem birdParticlesystem;


void Start () {

birdParticleObject = GameObject.Find("BirdParticleSystem");
birdParticlesystem = birdParticleObject.GetComponent<ParticleSystem>();
}

// Update is called once per frame
void Update () {

}


void OnTriggerEnter(Collider other)
{
if(other.tag == "Player") {

birdParticlesystem.Play();
Destroy(gameObject);
}

}
}

最佳答案

我认为您的问题出在以下区域:

birdParticlesystem.Play();
Destroy(gameObject);

您告诉粒子系统播放,然后立即销毁它的父级,这也将销毁它。尝试:

     birdParticlesystem.Play();
birdParticlesystem.transform.SetParent(null);
Destroy(gameObject);

这将在销毁可收集对象之前从其父级移除粒子系统。一旦播放完毕,您应该 Destroy() 粒子系统,否则它将留在场景中。

关于c# - 可收集的对象在我预制后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36809347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com