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 /
avatar image
0
Question by Naeja · May 12, 2016 at 08:19 PM · uieventsystemuser interfaceevent-listener

UI - Assigning Event Callbacks Via Script Fails on GameObjects Instantied Via Script

So I have a pretty basic tower defense game going on, there are set build points each with their own mini canvas UI for building and upgrading towers. Once you build a tower on them, they disappear and I instantiate a tower prefab with the new UI setup for upgrading said tower. Now, if I have a tower pre placed in the scene all the calls to the UI button events (set up via script) work just fine, however for whatever reason on a cloned object although all the setup script is still being called (I checked with debug statements) the events will not be called. I'm almost certain this is a bug, I'm using the latest stable version of Unity (5.3.4f1), I have my canvas set up correctly and there is an EventSystem object in the scene. Here is the button event setup script I use (it's a component on the button itself which is a child of the popup obejct on the Canvas which is a child of the actual tower object.

 using UnityEngine;
 using UnityEngine.Events;
 using UnityEngine.EventSystems;
 using System.Collections;
 
 public class UpgradeButtonSetup : MonoBehaviour {
     public string buttonType = "";
     private AttackCollector ac;
     private Collector c;
     private UnityEvent eButtonDown;
     // Use this for initialization
     void Awake () {
         Debug.Log("Setting up");
         eButtonDown = new UnityEvent();
     //    eButtonUp = new UnityEvent();
         EventTrigger trigger = gameObject.GetComponent<EventTrigger>();
         EventTrigger.Entry entry = new EventTrigger.Entry();
         ac = transform.parent.parent.parent.GetComponent<AttackCollector>();
 
         if(ac == null){
             Debug.Log(transform.parent.parent.parent);
             c = transform.parent.parent.parent.GetComponent<Collector>();
 
             switch(buttonType){
                 case "hp":
                     eButtonDown.AddListener(c.UpgradeHp);
                     break;
                 case "resource":
                     eButtonDown.AddListener(c.UpgradeResourceGen);
                     break;
                 default:
                     eButtonDown.AddListener(c.UpgradeHp);
                     break;
             }
 
         }
         else{
             switch(buttonType){
                 case "hp":
                     eButtonDown.AddListener(ac.UpgradeHP);
                     break;
                 case "attkspeed":
                     eButtonDown.AddListener(ac.UpgradeAttackSpeed);
                     break;
             }
         }
 
         entry.eventID = EventTriggerType.PointerDown;
         entry.callback.AddListener((eventData) => {ButtonDown();});
         trigger.triggers.Add(entry);
 
     }
 
 
     void ButtonDown(){
         eButtonDown.Invoke();
     }
 }

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

0 Replies

· Add your reply
  • Sort: 

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

3 People are following this question.

avatar image avatar image avatar image

Related Questions

Eventsystem requires window focus? 0 Answers

Check UI panel touched after OnEnable()? 0 Answers

How to send mouse events directly to the canvas in world pos 0 Answers

SteamVR Slider won't drag using VR Controller,SteamVR-controller can't drag Slider handle 0 Answers

Cursor.lockstate and OnPointerEnter not working together 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