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 Kyuu · Nov 10, 2013 at 01:54 PM · instantiateprefabparenting

Problem setting the parent.

Hi,

I have a problem setting the parent of an instiated prefab. I am working on a random weapon generator, like the one from Borderlands. When I create a weapon, it creates an empty game object prefab, with the following script attached to it, and a rigidbody. The problem is that I get an NullReference when I try to parent the weapon-part prefabs. These are just models with a collider. Any ideas or hints how I can do this? Thanks in advance! PS. I am not a great programmer, just a beginner.

 using UnityEngine;
 using System.Collections;
 
 public class Creator : MonoBehaviour {
 
     public Transform weaponBodyPref1;
     public Transform weaponBodyPref2;
     public GameObject weaponBody;
 
     public Transform weaponGripPref1;
     public Transform weaponGripPref2;
     public GameObject weaponGrip;
     
     public Transform weaponBarrelPref1;
     public Transform weaponBarrelPref2;
     public GameObject weaponBarrel;
     
     public Transform weaponStockPref1;
     public Transform weaponStockPref2;
     public GameObject weaponStock;
     
     public Transform weaponMagPref1;
     public Transform weaponMagPref2;
     public GameObject weaponMag;
     
     public Transform weaponSightPref1;
     public Transform weaponSightPref2;
     public GameObject weaponSight;
     
     
     // Use this for initialization
     void Start () 
     {
         createModel();
     }
     
     
     // Update is called once per frame
     void Update () 
     {
         
     }
     
     void createModel()
     {
         //Location
         Vector3 WeapLoc = new Vector3(this.transform.position.x, this.transform.position.y, this.transform.position.z);
         
         //Weapon Barrel
         int weaponBarrelRarity = Random.Range(0, 100);
         
         if(weaponBarrelRarity >= 0 && weaponBarrelRarity <= 29)
         {
             weaponBarrel = Instantiate(weaponBarrelPref1, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Barrel 1");
         }
         else if(weaponBarrelRarity >= 30 && weaponBarrelRarity <= 100)
         {
             weaponBarrel = Instantiate(weaponBarrelPref2, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Barrel 2");
         }
         
         //Weapon Body
         int weaponBodyRarity = Random.Range(0, 100);
         
         if(weaponBodyRarity >= 0 && weaponBodyRarity <= 29)
         {
             weaponBody = Instantiate(weaponBodyPref1, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Body 1");
         }
         else if(weaponBodyRarity >= 30 && weaponBodyRarity <= 100)
         {
             weaponBody = Instantiate(weaponBodyPref2, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Body 2");
         }
         
         //Weapon Grip
         int weaponGripRarity = Random.Range(0, 100);
         
         if(weaponGripRarity >= 0 && weaponGripRarity <= 29)
         {
             weaponGrip = Instantiate(weaponGripPref1, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Grip 1");
         }
         else if(weaponGripRarity >= 30 && weaponGripRarity <= 100)
         {
             weaponGrip = Instantiate(weaponGripPref2, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Grip    2");
         }
         
         //Weapon Stock
         int weaponStockRarity = Random.Range(0, 100);
         
         if(weaponStockRarity >= 0 && weaponStockRarity <= 29)
         {
             weaponStock = Instantiate(weaponStockPref1, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Stock 1");
         }
         else if(weaponStockRarity >= 30 && weaponStockRarity <= 100)
         {
             weaponStock = Instantiate(weaponStockPref2, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Stock     2");
         }
         
         //Weapon Mag
         int weaponMagRarity = Random.Range(0, 100);
         
         if(weaponMagRarity >= 0 && weaponMagRarity <= 29)
         {
             weaponMag = Instantiate(weaponMagPref1, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Mag 1");
         }
         else if(weaponMagRarity >= 30 && weaponMagRarity <= 100)
         {
             weaponMag = Instantiate(weaponMagPref2, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Mag 2");
         }
         
         //Weapon Sight
         int weaponSightRarity = Random.Range(0, 100);
         
         if(weaponSightRarity >= 0 && weaponSightRarity <= 29)
         {
             weaponSight = Instantiate(weaponSightPref1, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Sight 1");
         }
         else if(weaponSightRarity >= 30 && weaponSightRarity <= 100)
         {
             weaponSight = Instantiate(weaponSightPref2, WeapLoc, Quaternion.identity) as GameObject;
             Debug.Log("Sight 2");
         }
         
         GameObject mainWeap = GameObject.Find("newSMG(clone)");
         weaponBody.gameObject.transform.parent = mainWeap.gameObject.transform;
         weaponGrip.gameObject.transform.parent = mainWeap.gameObject.transform;
         weaponMag.gameObject.transform.parent = mainWeap.gameObject.transform;
         weaponBarrel.gameObject.transform.parent = mainWeap.gameObject.transform;
         weaponStock.gameObject.transform.parent = mainWeap.gameObject.transform;
         weaponSight.gameObject.transform.parent = mainWeap.gameObject.transform;
         
     
     }
 }

I have updated the script to the most recent version (added all the weapon parts and tried various methods for the parenting), but I still can't figure out the answer. Please help me out!

Comment
Add comment · Show 2
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 Berenger · Nov 10, 2013 at 03:15 PM 0
Share

Do you get the debugs "Body X" and "Grip X" ? I suspect you never actually enter those and weaponBody/weaponGrip are null

avatar image Kyuu · Nov 10, 2013 at 05:43 PM 0
Share

I indeed do not get the debugs. However, the actual prefabs do get created, with colliders and everything. But yet it gives me the Null Reference,

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by FirePlantGames · Nov 10, 2013 at 04:19 PM

Maby try gameObject.transform?

Comment
Add comment · Show 1 · 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 Kyuu · Nov 10, 2013 at 05:44 PM 0
Share

I have tried it, but still no good. I have also tried this.gameObject.transform and this.transform, but those work neither.

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

18 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

Related Questions

Parenting an instantiated prefab. 1 Answer

Prefab changing dimensions when parent changed 1 Answer

Parenting an instantiated Prefab... again 1 Answer

Prefab instantiating problem 1 Answer

How to make an Instantiated prefab a Child of a gameobject that already exists in the hierarchy 3 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