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 NotAnExecutive · Jul 10, 2016 at 04:22 PM · inputtutorialeventinputmanagerdelegate

I have created an Event based InputManager

Hi, guys. I've been working in Unity for some time and I had one problem: Since the input logic is changing from scene to scene, I needed an InputManager for each scene that my game had.

For example: I had GameScreenInputManager, StoreScreenInputManager, etc. In the first one, I checked for mouse and key events. But in the second one, I just checked for mouse events since there were only buttons.

But having one InputManager for each screen implied a lot of code redundance. Which is bad. BUT there is something worse: With this approach, there is a lot of coupling between classes! Input Managers should know about other scripts references in order to call their methods once some particular input was detected.

So I got tired of that and tried to figure out a better way to handle input while reducing code redundance. After a lot of tries, I came up with this: https://github.com/rebelrabbit/UnityInputManager

Some usage examples:

InputManager.RegisterKeyEvent(InputPhase.onPressed, KeyCode.A, TestPressKeyA); InputManager.RegisterMouseEvent(InputPhase.onPressed, MouseButton.Left, PointerInputPlace.onAnything, TestAnything);

That meant that the method TestPressKeyA will be automatically called when the user presses the Key 'A' and that whenever the user left-clicks anywhere on the screen, the TestAnything method will be automatically called.

It's a generic script based on events. You will only need one instance of this script in every scene, and you're ready to go. No more scene-dependant InputManagers!

It's pretty basic though. For the moment, it doesn't handle touch or gamepad inputs, but I will be implementing those features really soon.

If this is helpful to anyone, I will feel honored. So, yeah. Please, tell me what you think. I'd really love your feedback.

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

65 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

Related Questions

UNITY no longer detecting XBOX360 controller input,XBOX 360 controller no longer working with UNITY 0 Answers

What Are The Proper Conversions For Key Input in 5.4? 0 Answers

Issue with EventSystems in 2018.4.2f1 0 Answers

Do I need to use the Input Manager to register all input axes? 0 Answers

JoyCons not working with vJoy 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