• 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
1
Question by rageingnonsense · Feb 02, 2015 at 05:41 PM · prefabscritping

Access prefab's script without instantiating

I want to access a script I have attached to a prefab to get some public values from it. I am creating several prefabs that all use the same script, but with different values (to assign resource costs to placeable buildings).

I want to access these values from a script I have attached to a UI button to see if I should enable the button (the button will spawn a structure for placement by the player). If they have the resources, then instantiate. I want to avoid instantiating first though since the entire idea is to see if I should instantiate in the first place.

Is there a way to do this? Is there a better design pattern I should perhaps be investigating? I'm using C# btw.

EDIT: What I ended up doing is creating a single class that acts as a list of each building I have available. Each building is instantiated once in this list as a gameobject on load of the game. In that way, I can reference the scripts contained in them. also allows me to quickly clone them without loading the prefab constantly.

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 Bonfire-Boy · Feb 02, 2015 at 05:58 PM 0
Share

One approach that would work would be to create a separate class to store those member fields that "define" your buildings, and have a list or database of such definitions. Your building-creation script would have an init function that took one of these definition instances as a parameter after instantiating, but you'd be able to inspect the definitions list first to decide whether to instantiate or not.

1 Reply

· Add your reply
  • Sort: 
avatar image
1

Answer by Mmmpies · Feb 02, 2015 at 06:01 PM

No but you can store the settings you need say on a different GameObject with a holding script and then set them for the instance of the object if/when you instantiate it.

I sometimes use this to reference objects:

 GameObject newItem = Instantiate(itemPrefab) as GameObject; 
 newItem.GetComponent<MenuItm>().myArrayNumber = myCount;

It just sets an int to the myArrayNumber int in the MenuItem script.

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.

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

21 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

Related Questions

Enemy shooting problem 0 Answers

Object coordinates not updating as expected 0 Answers

Instantiating prefabs dynamically in script 1 Answer

Photon Instantiate Prefab Script Problems 0 Answers

instatiate prefabs at start, at a spawn point 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