• 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 lukas77i · Sep 03, 2011 at 11:04 AM · inspectorfunctionstringaccess

Accessing a function through its name stored in a string JS

Hi,

I need to access a function in a different script by entering it's name in Editor. Here is my setup so far:

SCRIPT 1: FnCollection.js

 //FUNCTION COLLECTION SCRIPT//
 private static var instance : FnCollection = null;
 static function I() : FnCollection   
 { 
     if(instance == null)
     {
         instance = FindObjectOfType(FnCollection);
     } 
     return instance;
 }
 
 function PrintStuff()
 {
     print("hello");
 }    



SCRIPT 2: FnRunner

 //FUNCTION RUNNER SCRIPT//
 
 var fnToRun: String;
 
 function Start()
 {
     FnCollection.I().fnToRun();
 }


However, it doesn't work because "fnToRun is not a member of FnCollection". This is obvious but how else can I access the function through it's name being retrieved from a string that is editable in the Inspector in the Unity Editor?

I need to have access like this as I plan on putting all my general functions into FnCollection and accessing them when I press buttons and from other scripts.

Thanks

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
Best Answer

Answer by Peter G · Sep 03, 2011 at 11:28 AM

REEEFLECTION :)

Here's the method you want.

 function Start()
 {
     var myType : Type = FnCollection.I().GetType();
     myType.InvokeMember(fnToRun , BindingFlags.Instance | 
                                   BindingFlags.Public |
                                   BindingFlags.InvokeMethod , null , FnCollection.I() , args[] );
 }

First, get the type of the meted to call. Then call invoke on it. Pass a string with the method name. Pass Binding flags to determine what members to look for. You can usually pass null for the Binder parameter. then pass in the instance you want to call it on, and finally the arguments you want to pass to the function. Null if there are none.

}

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 lukas77i · Sep 03, 2011 at 11:36 AM 0
Share

Thank you man. I've been looking for this for like 3 hours. I really appreciate your help.

avatar image
1

Answer by Waz · Sep 03, 2011 at 01:21 PM

GameObject.SendMessage would suffice in this case.

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

4 People are following this question.

avatar image avatar image avatar image avatar image

Related Questions

Can't make script work. & Script help. 1 Answer

How to Convert a Variable Name to a String? 2 Answers

Calling non applied scripts 3 Answers

Accessing function from another script won't work 1 Answer

Accessing a function within a script assinged in inspector. 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