Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by nicholasy24 · Mar 06, 2017 at 07:15 PM · scripting problemscript.variablesreflection

Invoking a Function From A Variblized Script And Object

Hello!

I am currently trying to find a way to run a function from a script in another object. Now I Realize this sounds simple enough but there is a catch. I need to be able to call this function when the object, script, and function are all variables. and i believe the best way if not the only way to do so is with a reflection. But if i'm being totally honest i don't quite understand how to do so. if anyone could tell me the best way to do so and explain it for me it will be greatly appreciated.

Thank You In Advanced!

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
0

Answer by Commoble · Mar 06, 2017 at 08:33 PM

 public FirstScript : MonoBehaviour
 {
     public void someFunction()
     {
         // function code goes here
     }
 }
 
 
 // and then in a different script file
 
 public OtherScript : MonoBehaviour
 {
     public FirstScript scriptOnOtherObject;
 
     // SOLUTION 1:
     // if you can access both objects in the scene editor,
     // link your first script here by dragging the other object
     // to this script's scriptOnOtherObject field in the inspector,
     // and then the field above will reference that script.
 
     // SOLUTION 2:
     // if you can't do Solution 1 because one or both objects
     // aren't instantiated until runtime,
     // then first you'll have to get a reference to the other GameObject, i.e.
         // GameObject otherGameObject = (other game object)
     // then use
         // this.scriptOnOtherObject = otherGameObject.GetComponent<FirstScript>();
     // How you get the reference to the other game object depends on the context.
     // For example, if the two objects collide, the collision event will give you a reference
     // to the other game object.
     
 
     // Then, in either case, wherever you need to call that function:
     void Update()    // (for example)
     {
         this.scriptOnOtherObject.someFunction();
     }
 }

If the function is also a variable (i.e. you're using delegates), then the lower script is exactly the same, it calls the function in the same manner.

e.g. if x is a variable holding a function, then you invoke that function by calling x().

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

117 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 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 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 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 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 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

Script error and no Variables showing 0 Answers

How to compare two different variables in two different scripts? 0 Answers

Help with [SerializeField] in a script! 1 Answer

Unity Navmesh agent patrol and chase player script issues. 0 Answers

Make enemy patrol without Nav Points? 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