Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 /
avatar image
0
Question by Redwolve · Jan 12, 2015 at 12:18 PM · javascriptprefabonclicklistenereventlistener

AddListener() Javascript

So here's the deal: I want to add a listener to a prefab button the moment I instantiate it. I have found an example that appears to work for everyone in C#, but I can't seem to get or find the proper syntax for adding it.

This is the line I am trying to use to set the listener:

 buttonBuilder.onClick.AddListener
 (
      CardClicked(buttonBuilder.GetComponent(Animator))
 );

The error I recieve is:

Assets/GameScript.js(59,25): BCE0023: No appropriate version of 'UnityEngine.Events.UnityEvent.AddListener' for the argument list '(void)' was found.

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

Answer by Cocobongo · Jan 12, 2015 at 03:00 PM

Maybe

 buttonBuilder.onClick.AddListener
  (
       function() { CardClicked(buttonBuilder.GetComponent(Animator)) }
  );

Would work instead?

My guess is that atm, you are calling CardClicked(...) instead of passing it as a function.

Comment
Add comment · Show 3 · 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 Redwolve · Jan 12, 2015 at 04:11 PM 0
Share

Thank you very much for your help!! Couldn't seem to find an example of how to pass a function. This fixed my problem instantly!

Now to undo all the nonsense I went through trying to find a way around this, lol.

Thanks again!

avatar image Redwolve · Jan 12, 2015 at 06:07 PM 0
Share

So I can now call the function when a button is clicked. $$anonymous$$y problem now is, I used a nested loop to Instantiate all the buttons and assign the OnClick function. Therefore all the buttons have the very same OnClick function and all flip the last card created.

Is there a way to assign them that wont reference a variable?

avatar image apiotuch · Apr 11, 2015 at 10:46 AM 0
Share

@Redwolve I'm having the same issue.

avatar image
0

Answer by Fomin · May 27, 2018 at 11:51 AM

if you use loop for:

function addListener_( yourBtn: Button){

  yourBtn.onClick.AddListener( function(){ yourCallBack(//param. if necessary);});

}

function yourFunction() {

for(){

  //here you create an instance of the object

  addListener_( yourBtn);

}

}

function yourCallBack() {}

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

27 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

Related Questions

Weird behaviour when trying to dynamically create buttons 0 Answers

My onclick action listeners I attach to my buttons as I instantiate them only work once 1 Answer

How I can reuse a bullet prefab whith enemies and my character? 1 Answer

button.onClick.AddListener(method); NOT Working 1 Answer

Calling a function from a PreFab 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