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 nogoodnick · Jun 03, 2015 at 11:44 AM · c#instantiateparent transformtransform.parent

instantiated object not moving with parent transform.

hi all!

thanks for taking a look :)

i am attempting to instantiate a vfx prefab with the transform of an existing game object, and then parent that instantiated object to another object. the desired effect is to have vfx spawn off a character's hand, and then travel with the character animation while retaining the position and orientation of its parent object.

in the code below, if the (Transform gauntletL_vfx) is left empty, the object will be instantiated but without retaining its parent's position.

as you can tell, i am new to scripting. any feedback is welcome.

thanks!

using UnityEngine; using System.Collections;

 public class InstantiateGauntletVFX : MonoBehaviour 
 {
     public GameObject gauntletVFX_01;
     public Transform gauntletL_vfx;
 
     public void OnVFXTrigger (Transform gauntletL_vfx)
     {
         Instantiate(gauntletVFX_01, gauntletL_vfx.position, gauntletL_vfx.rotation);
         gauntletVFX_01.transform.SetParent(gauntletL_vfx, false);
     }
 }
 
Comment
Add comment · Show 1
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 Owen-Reynolds · Jun 03, 2015 at 05:32 PM 0
Share

As tanyamzho notes, the real problem is incorrect use of Instantiate. Look over the basic examples of how to spawn something and use the spawned thing afterwards.

The parent part is fine. It's only not working because of the messed-up Instantiate use.

1 Reply

· Add your reply
  • Sort: 
avatar image
2

Answer by tanyanzhi · Jun 03, 2015 at 01:26 PM

the returned value from function Instantiate is the new created object,so you could use it, not the original prefab gauntletVFX_01:

      public void OnVFXTrigger (Transform gauntletL_vfx)
      {
          GameObject tmp = Instantiate(gauntletVFX_01, gauntletL_vfx.position, gauntletL_vfx.rotation) as GameObject;
          tmp.transform.SetParent(gauntletL_vfx, false);
      }
Comment
Add comment · Show 3 · 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 CaptainMurphy · Jun 03, 2015 at 02:44 PM 0
Share

the transform.SetParent() has been buggy for me in the past. I have had better luck with setting it as a property.

 public void OnVFXTrigger (Transform gauntletL_vfx)
       {
           GameObject tmp = Instantiate(gauntletVFX_01,gauntletL_vfx.position, gauntletL_vfx.rotation) as GameObject;
           tmp.transform.parent = gauntletL_vfx.transform;
       }
avatar image tanyanzhi · Jun 04, 2015 at 01:42 AM 0
Share

tmp.transform.SetParent(gauntletL_vfx, true); is the same as tmp.transform.parent = gauntletL_vfx.transform;

if you set the second parameter to false, the the Transform keep its local position,so in most cases, we set it to true.

here is the reference

avatar image nogoodnick · Jun 04, 2015 at 08:22 AM 0
Share

wow thanks so much you guys! it was indeed an issue of how i was trying to instantiate the prefab. ill post the finished code in a bit.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Instantantiate relative to parents position 1 Answer

Distribute terrain in zones 3 Answers

Transform.parent returns only null 1 Answer

Multiple Cars not working 1 Answer

Duplicate UI object 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