• 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 Mosy · Aug 13, 2014 at 09:28 PM · prefabpassing

Instantiate prefab and send it required game objects

I'm working on a game which will have cars randomly generate and follow a path. I have the cars prefabbed and I am working on a C# script that will allow me to randomly generate a car, and have it follow the path that it is assigned to. I can send the cars to the correct start point but I am not sure how to send the car the path. For testing purposes I have the spawning tied to the space bar.

  static public int carListSize;
  static public int pathsSize = 4;
  public GameObject[] paths = new GameObject[pathsSize];
  public GameObject[] pathStartPoint = new GameObject[pathsSize];
  public GameObject[] carPrefabs = new GameObject[carListSize];
  public int num;
  FollowPath newObj;
  void Update()
  {
      if (Input.GetKeyDown("space"))
      {
          num = Random.Range(0, pathsSize);
          newObj = Instantiate(carPrefabs[0],
          pathStartPoint[num].transform.position, Quaternion.Euler(0, 180, 0));
          newObj.path = paths[num];
      }
  }






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 Mosy · Aug 13, 2014 at 08:04 PM 0
Share

I added the newObj stuff to it, in an attempt to access the path through my FollowPath script.

avatar image Kiwasi · Aug 17, 2014 at 09:12 PM 0
Share

An alternative way to do this is the factory pattern.

1 Reply

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

Answer by Endless_Aftermath · Aug 13, 2014 at 10:33 PM

You have to access the script that's attached to the newObj. You were trying to assign your prefabs as a FollowPath script. Try this...

 static public int carListSize;
 static public int pathsSize = 4;
 public GameObject[] paths = new GameObject[pathsSize];
 public GameObject[] pathStartPoint = new GameObject[pathsSize];
 public GameObject[] carPrefabs = new GameObject[carListSize];
 public int num;
 //I took out the newObj declaration here...
 
 void Update()
 {
   if (Input.GetKeyDown("space"))
   {
     num = Random.Range(0, pathsSize);
     //here, we create newObj as a GameObject
     GameObject newObj = (GameObject)Instantiate(carPrefabs[0],
         pathStartPoint[num].transform.position, Quaternion.Euler(0, 180, 0));
         //...and here we Get the Component, the FollowPath script, of newObj, then assign the variable path
         newObj.GetComponent<FollowPath>().path = paths[num];
    }
 }
 
 
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 Mosy · Aug 17, 2014 at 06:27 PM 0
Share

Thanks,I knew I was doing something wrong.

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.

Welcome to Unity Answers

If you’re new to Unity Answers, please check our User Guide to help you navigate through our website and refer to our FAQ for more information.

Before posting, make sure to check out our Knowledge Base for commonly asked Unity questions.

Check our Moderator Guidelines if you’re a new moderator and want to work together in an effort to improve Unity Answers and support our users.

Follow this Question

Answers Answers and Comments

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Trying to pass a float value from a prefab to another script that compares values from multiple prefabs 1 Answer

How should one give a gameobject to a prefab? 1 Answer

Instantiate question 1 Answer

Previewing mesh before instantiating 1 Answer

Shadows (pro) disappear on Unity restart 0 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