Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 14 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 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 BillehBawb · Dec 24, 2019 at 07:17 AM · buttononmousedownbutton trigger events

Activate an OnMouseDown event before clicking a UI button?

Hey, so I am making a mobile game and I have 2 big invisible buttons on either side of the screen. The idea is that the player can click on one of the sides of the screen and the camera will scroll in that direction. I have that all set up. The issue I am having is that I also have objects I want to be able to click on under those buttons. If I use an OnMouseDown right now it just does what I want to when I click on the object and also scrolls the screen. I tried setting it up so that when the mouse is hovered over the object it disables the buttons which works fine in the editor but considering it is a mobile game and you can't really do that on a phone, that isn't a working solution. So, my question is, is there any way to have a UI button be pressed AFTER an OnMouseDown event? If the event fires first then I can just disable the buttons if you clicked on an object so then the buttons dont fire. Let me know if there is any way around this, 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

1 Reply

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

Answer by xibanya · Dec 24, 2019 at 07:43 AM

You could remove the button component from the images and instead attach a script like this:

 using UnityEngine;
 using UnityEngine.EventSystems;
 using System;
 
 public class UIEventHandler : MonoBehaviour, IPointerClickHandler
 {
     public event Action<string> onPointerClick;
     public void OnPointerClick(PointerEventData eventData)
     {
         if (onPointerClick != null) onPointerClick(gameObject.name);
     }
 }

Then in the script that has the actions for that scene have

 public UIEventHandler leftButton;
 public UIEventHandler rightButton;

and drag the buttons into the fields in the inspector. Have a method like,

 public void OnUIClick(string sender)
 {
     if (Physics.Raycast(Camera.main.ScreenPointToRay(Position), 
     out RaycastHit hit, detectDistance, layerMask) &&
     hit.collider.GetComponent<Interactable>() ! null)
     {
         //interact with the thing
     }
     else
     {
         if (sender == "LeftButton") //do button thing
         else if (sender == "RightButton") //do button thing
     }
 }

then in Start() subscribe to the events like this

 void Start()
 {
     leftButton.onPointerClick += OnUIClick;
     rightButton.onPointerClick += OnUIClick;
 }

You can add other kinds of interactions to the UIEventHandler class too, like IPointerEnter and IPointerExit for a visible button so you can decide to nope out of a visual highlight or not before it happens.

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 BillehBawb · Dec 24, 2019 at 08:28 PM 0
Share

Thank you! Exactly what I was looking for :)

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

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

how and Where to handle code for back button in google Vr sdk v1.10.0 0 Answers

Show a message(image) using a button? 0 Answers

Is there any way that I can make a 3D model act like a UI button, so I can just click on the 3Dobject and move to another scene??? 1 Answer

OnSelect and OnPointerEnter work in one script but not another on the same object 2 Answers

Unusual trouble with OnPointerClick 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