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 SuperSparkplug · Oct 18, 2013 at 02:50 AM · instantiateprefabspawnname

Naming Instantiated Prefabs

Hi,

In my game, I'm trying to make it so that a new room spawns every time you open a door. I got that working, however, keeping track of the rooms can be annoying and can cause issues further down the line if the naming is automatic since it just calls it "Room_Prefab(Clone)" and keeps adding "(Clone)" to the name of every room after. I want to be able to name these specifically on every instantiation.

I almost got that working, however, it doesn't work like I want it to. The way I have it working right now makes the room rename itself before it spawns another room (Which is unaffected by the name change code). I'm not exactly sure how to name the new instantiated room. Here's my code that controls the instantiation. Any ideas?

     void Update ()
     {
         if (door.open && !door.spawnOnce) { 
         // create the new room:
             roomNum++;
             Instantiate (Room_Prefab, transform.position, transform.rotation);
             Room_Prefab.name = Room + roomNum;
             door.spawnOnce = true; // make sure it's created only once
             Debug.Log("New Room!");    
             Debug.Log(roomNum);
         }
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

2 Replies

· Add your reply
  • Sort: 
avatar image
1

Answer by LukaKotar · Oct 18, 2013 at 02:54 AM

The way you are doing it now, will try to rename the prefab itself. You might want to store the instantiated room instance as a variable:

 Transform roomInstance = Instantiate (Room_Prefab, transform.position, transform.rotation);
 roomInstance.name = "Your desired name";
 roomInstance = null;
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 rutter · Oct 18, 2013 at 03:11 AM 1
Share

Adding to that, I'm a big fan of creating a root-level GameObject which can contain all of those spawned instances. After spawning each instance, I set its transform.parent to the root object. Anything that keeps the scene tidy is helpful.

avatar image
0

Answer by Arunneupane · Aug 13, 2017 at 05:13 PM

@SuperSparkplug @LukaKotar using System.Collections; using System.Collections.Generic; using UnityEngine;

public class spawn : MonoBehaviour { public GameObject cube;

 void sp() // function to spawn
 {
     Instantiate(cube, new Vector3(1.52f, -7.962671f, 11.86f), transform.rotation);
     int num =+ 4; // declaring value of num and it gets updated and increased by 1
     num++;
     cube.name = "cube" + num; //adding into its name
 }
 // Use this for initialization
 void Start () {
     InvokeRepeating("sp", 10f, 10f); // inorder to spawn objects 
 }

 

}

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

17 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

Related Questions

Instantiate a Prefab with click in a certain area 2 Answers

How can I align instantiated prefabs randomly on runtime #C 0 Answers

i need Spawn Object loop if find object tag ("Clone") in list ,when i delete find object tag ,cript is good but no find object, please help me 1 Answer

Instantiated object is destroyed in scene, but still logs as existing in console. 1 Answer

i need to destroy prefab clones 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