Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by AugustusConan · Mar 22, 2018 at 02:35 AM · particle systeminstantiate prefabprefab-instance

Prefab attached to script is destroying itself before Instantiate() is called

I have a particle system GameObject that has a script on it to destroy itself when the particle system is finished playing:

 void Update () {
     if (!GetComponent<ParticleSystem>().IsAlive()) {
         Destroy(this.gameObject);
     }
 }


I have another GameObject with a script with a reference to the particle system prefab:

 public GameObject    m_hitWallParticle;

For some reason, the prefab's Update() script is being run without being instantiated. What's going on here? Am I going about this the wrong way?

Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by ifurkend · Mar 22, 2018 at 03:14 AM

Not enough information, but it could be the particle effect prefab has its "play on awake" property unchecked, hence when you instantiate it the effect does not start playing instantly, subsequently IsAlive() thinks the effect is not alive. Most importantly, if you can predict the duration of your effect, then its best to avoid IsAlive() and give the delay time to Destroy() second attribute, so you can get rid of that if statement.

Other tips:

First avoid constantly GetComponent for performance's sake, especially during Update(). Instead, do it in Awake() or OnEnable() once only and assign it to a variable.

Second, you should avoid destroying your object you are going to instantiate it in the same scene again. You can leave the inactive particle system as is. When you need it again, relocate and play it again.

Comment
Add comment · Show 2 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image AugustusConan · Mar 22, 2018 at 04:08 PM 0
Share

The problem is is that I'm setting the public GameObject variable to the prefab, and the prefab's script is running before the GameObject is being instantiated. Does that make sense? I try instantiating the prefab but it comes back saying it's null because its already destroyed itself.

avatar image ifurkend AugustusConan · Mar 23, 2018 at 01:48 AM 0
Share

You need to share your full code to get help. Right now we have very vague idea how you instantiate your particle system.

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

79 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Instanciate prefab responsively 1 Answer

GameObject variable points to instance instead of prefab when prefab gets instantiated 2 Answers

How to manipulate a variable of a prefab script (instantiated) while the game is runnning . 1 Answer

How to display gameobject(prefab folder) as image? 1 Answer

Particle system prefab not instantiated 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges