Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 NerdRageStudios · Jul 13, 2014 at 09:44 AM · instantiateprefabparticles

Instantiate an prefab as a child of the player

Hi, I am using oneshot particles to fire when the player level's up. The problem is that they contain a light to create a nice big effect, but when the player moves the light (and prefab) are left behind which looks odd while the particle fires.

I want to make the prefab follow the player, so I assume that the best way to do this is to make it a child of the gameobject of the player.

I tried using the following method.

Here I declare the public field to the inspector and then map the gameobjects to them

         public Transform ParticleOneshotLevelUp;
         public Transform GameObjectPlayerOne;

Then I use the following code to create the particle effect

 (Instantiate(ParticleOneshotLevelUp, transform.position, transform.rotation) as GameObject).transform.parent = GameObjectPlayerOne.transform;

The problem is that the particle is indeed created, but not as a child, I get a object reference not set to an instance error, but it is assigned in the inspector, so I am a bit confused!

Any help would be greatly appreciated :)

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

3 Replies

· Add your reply
  • Sort: 
avatar image
2
Best Answer

Answer by Lachee1 · Jul 13, 2014 at 10:00 AM

What you have to do is set the instantiated objects parent to the player.

Here is some pseudo in C# on how to do it:

 public Transform ParticleOneshotLevelUp;
 public Transform GameObjectPlayerOne;
 
 public void CreateEffect() {
   GameObject particle = Instantiate(ParticleOneshotLevelUp, transform.position, transform.rotation) as GameObject;
 
   particle.transform.parent = GameObjectPlayerOne;
 }


You should also use GameObject to store your prefab, as Transform cannot access assets if I remember correctly.

So from

 public Transform ParticleOneshotLevelUp;

To

 public GameObject ParticleOneshotLevelUp;


Comment
Add comment · 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
1

Answer by tconti · Jul 13, 2014 at 03:03 PM

I know you got an answer, but another way to solve this is to make it a child of the prefab and have it set to inactive, then just activate it when you want it to show up.

Comment
Add comment · 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
0

Answer by NerdRageStudios · Jul 13, 2014 at 10:47 AM

Fantastic, that's just what I needed, thank you so much :)

Comment
Add comment · 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

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

23 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

Related Questions

How do I Update the transform of Instantiate prefab? 2 Answers

How to Destroy Particle System after Instantiating,How to destroy a particle system that was just spawned? 1 Answer

Wrong particle and prefab spawn position 1 Answer

Instantiating prefab vs loading new scene 1 Answer

Instantiating empty game object - performancewise 2 Answers


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