• 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 Somian · Dec 30, 2011 at 08:02 PM · instantiation

set type to instantiate in static function

Hi there, i'd like to make a script i can call from anywhere without the need of having the script attached to a game object in the current scene to instantiate a GameObject.

I have the following code in my script:

 static var console:GameObject;
 static var consoleType:GameObject;
 
 static function Write(text:String)
 {
     if(!console)
     {
         console=Instantiate (consoleType, Vector3(0,0,0), Quaternion.identity);
     }
 }

I'd like to know how to set the variable "consoleType". If the script is attached to a game object, I can set the variable by dragging a prefab into corresponding space in the inspector but how do I do this if it's not attached to a game object?

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

1 Reply

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

Answer by tayl0r · Dec 31, 2011 at 09:30 AM

I believe you can also do this:

 console = Instantiate(Resources.Load("NameOfConsole")) as GameObject;


http://forum.unity3d.com/threads/43328-Finding-Prefabs

Comment
Add comment · Show 2 · 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 Somian · Dec 31, 2011 at 10:24 AM 0
Share

thi sis the correct answer to my problem. I'll give save's DontDestroyOnLoad idea a try, though. seems to be better for a console.

avatar image save · Dec 31, 2011 at 11:19 AM 0
Share

Yes, but a console (if it is what I think it is), it'll be comfortable to be able to store the string over levels. So if you want to post something to the console, it'll still be visible after loading next level using a manager / DontDestroyOnLoad on the script for the console. Usually using a console isn't just about giving commands, it's nice to have for feedback from the game at runtime.

So something like (combining @tayl0r's fine answer) this:

 if (!GameObject.Find("NameOfConsole")) {
     console = Instantiate(Resources.Load("NameOfConsole", GameObject));
     console.name = "NameOfConsole";
 }

and on the console:

 function Awake () {
     DontDestroyOnLoad (transform.gameObject);
 }

Regarding the issue in your other comment, I think you somehow have mixed up what is local for the GameObject and what is static. It's hard to tell when we don't see your code, but you'd have to treat static variables and functions with the rules it comes with. Refer to it as TheScript.theVariable. You can't reference from a static function to a local variable, you'd have to cast it forward from the local to the static:

 static var aStaticTransform : Transform;
 var aTransform : Transform;
 function Start () {
     ThisScript.aStaticTransform = aTransform;
 }

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

6 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Instantiation happens three times, but called only once 1 Answer

Instantiation causing issues x,y 1 Answer

Cost of instantiation 2 Answers

IgnorePhysics on BoxCollider at GameObject instantiation 0 Answers

scripts gets disabled when the prefab is instantiated 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