9

While the letter X is not copy protected, the specific cross used on the controller, along with the other shapes: , are trademarked. Using your own art to represent the buttons (as in your example image), should be OK under fair use, specifically nominative fair use. Where the qualifications for nominative fair use are one of the following situations: ...


7

Below is a helpful image guide, provided by the Unify Community Wiki article on the Xbox 360 controller. Make sure you use Axis The triggers are represented as axis, as opposed to buttons. This is because the triggers output a value based on how far down they have been pressed. A trigger can output a value of 0.5 if only half-way pressed, while a button ...


6

I don't know if it is because of a poor component that causes the false readings or a extremely precise component that registers the spinning of the earth, as it orbits the sun, as our solar system spirals through the galaxy. Either way, this is a common problem. The solution is to use some type of filter to smooth out the "extra" readings. There are ...


6

No, you do not need authorization from Microsoft to support Xbox 360 controllers. You can use the XInput API for free.


4

As others have explained, controllers (especially simple controllers like these) are supposed to work out of the box, with the standard input libraries of your operating system (DirectInput in Windows). It seems like you're interested in knowing who makes these, so I tried a bit of google, and found that "RetroLink" is a registered trademark of a USA ...


4

Read the wiki! Controllers connects/disconnects don't give listener events (right now), so controllers must be polled manually. The wiki says controller listeners don't work on the desktop for connects or disconnects. I'm no expert, I've just been reading the wiki in detail, but it looks to me like you must poll the controllers manually. This code will ...


4

TL;DR - Ideally you should allow all controllers to open up your game's options menu and select the "Primary" controller (which can be defaulted to the first controller you see). That controller is the only one that can make changes to your game. If you detect that controller disconnecting, you can pause your game and open up the same options menu and ask ...


3

Detecting swipe curvature Treat the finger swipe as a polyline. Approximate its curvature, and use that as a multiplier for how much to “curl” the resulting shot either left or right. Let's say a swipe path has no curvature if it goes linearly from the start (the circle), to the end, or curvature value 0. I'll emphasise other swipes' differences to this ...


3

I solved a similar problem once with the Wii remote - but we didn't have the gyroscopes & magnetometers common in mobile devices today (the Wii Motion Plus was just coming out at the time), just accelerometer. Here's a modified version of the approach... Keep track of a reference frame - say, a current "up" and "right" vector, or a quaternion. ...


3

According to the FCC instruction filing for Stratus XL, the center round key is intended to be a home key. If that's correct, there might not be much you can do, as the developer reference for the home key states: KEYCODE_HOME added in API level 1 int KEYCODE_HOME Key code constant: Home key. This key is handled by the framework and is never delivered ...


2

Since Android devices don't have left/right buttons (well, a long time ago they used to, and if you use bluetooth keyboard/gamepads they will), what you want is onscreen buttons. If you search for that then you will find plenty of answers and tutorials. The easiest method is to use the built-in GUI.Button class. There are many other ways to do it, such as ...


2

You can do it in a similar way to keyboard, storing the state by yourself: enum States {None, GoingDown, GoingUp } States Current, Previous; void Update() { Previous = Current; if (thumbStiscks.Y>0.5 || keyState.IsKeyDown(Keys.Up)) State = States.GoingUp; else if (thumbSticks.Y<-0.5f || ...


2

Check out node-virtual-gamepads. It does almost what you want (doesn't seem to have accelerometer support yet). From its blurb: This nodejs application provides the possibility to use your smarpthone as a gamepad controller on Linux OS simply by reaching a local address. You can virtually plug up to 4 gamepad controllers. If for some reason you want to ...


2

how to get from the game inside the type of force feedback This is a game design question. Once you know what feedback features are available for the controller in use, whether it is a game controller with a rumble pack, or a steering wheel with force feedback, you need to decide what you will do with it. What will you transfer from the game universe ...


2

Yes, PS3 controllers are a different configuration than the Xbox controllers. XBox maps to XInput while PS3 is proprietary. If you treat Button 1 on all joysticks as the fire button, then yes it will be inconsistent. The problem gets even worse if you assume the axis's are the same. Fortunately, you can map them however you want in Unity's Input Manager. ...


2

You can set up new axes for joysticks in the input manager by using "Joystick Axis" for the Type. The left stick would need two entries in the input manager, one horizontal (using the X axis), and one vertical (using the Y axis). The right joystick , using the 3rd and 4th axes. To use this in scripting, you need to get through Input.GetAxis("Joystick Left"), ...


2

Try implementing a property to keep track of your previous pressed state. So then you can do something like this instead: ButtonState PreviousButtonState; // Only action button press once if (PreviousButtonState.Buttons.B != ButtonState.Pressed && currPad.Buttons.B == ButtonState.Pressed) { if (m_currState == AnimState.FacingRight) { ...


2

Apart from legal issues, the colors you chose are just plain confusing. On a first party controller (which most people use) A is green, B is red, X is blue and Y is yellow. These make sense based on the most common uses for these. A is generally used for confirming actions, B is for "back" or "no", etc. Making the button colors differ from what's in front ...


2

Xinput library only supports 4 controllers at a time - please refer to the wiki page on Directinput -DirectInput Wiki. May take some work, but you could enumerate some of the controllers under Direct Input initially, then eliminate those being detected by XInput. That would require interrogating the GUIDs on the controllers. I believe you can obtain them ...


1

I figured it out. I was going about it all wrong. It's not perfect due to how unity handles analog sticks but here's the code. void AimControllers () { if (currentControllerAimAxisV != null && currentControllerAimAxisH != null) { AV = Input.GetAxis (currentControllerAimAxisV); AH = Input.GetAxis (currentControllerAimAxisH); ...


1

Input.GetButton() instead of Input.GetButtonDown() The former checks to see if the key is currently down and outputs true for every frame during the press. The latter checks to see if the key was up last frame and down this frame (that is: true for exactly one frame until released again).


1

I would say there is no such standard, because there are no WiFi game controllers. All the wireless game controllers I checked use either Bluetooth or some proprietary wireless data transmission. This makes sense as WiFi typically uses more power than Bluetooth and is harder to set up. A wireless network might not even be available on location. That ...


1

Changing the EventSystem's following values: Input Actions Per Second: 2 Repeat Delay: 0.3 This makes it more responsive, but is not ideal because it involves changing the EventSystem present in every scene. If someone has a better solution, I'd be happy to hear it.


1

I had your same problem. In my case It got fixed by closing unity and reconnecting the PS3 controller before starting Unity again. Maybe it helps


1

The PS3 controller is not directly compatible with PC. You will need a driver and a program to translate the controls to the format used on a PC. If you search the net, most articles will refer to an app called MotionInJoy but I've read many reports online that it is adware (maybe worse) and it's advised to avoid it. I've not used it but better safe than ...


1

Here we are just one script, assign it to the cube TargetSlideControl.cs using UnityEngine; using System.Collections; public class TargetSlideControl : MonoBehaviour { public int SPEED = 1; public Transform leftTrigger; public Transform rightTrigger; // Use this for initialization void Start () { } // Update is called once per frame void Update () { ...


1

If your objects are not animated I'd make just a transform animation between first and the second. When you want to change the objects you just play the animation and stop at the end. If you want to change back, you just play the same animation backwards, to 0. When you objects have their own animations it gets more tricky so in such case I'd make separate ...


1

Don't tune pids using the simplistic "trial and error" method! You will never get good results because parameters depend on each other. Use FOPDT (first order plus dead time) model together with IMC formulas to calculate Kp, Ki and Kd from test data. Do a step test on your control signal (directly towards the "plant" without controller) and record your ...


1

I've found that using XInput.Net fixed the immediate problem for me. As what I need to do is fairly simple I think this is going to be a good solution.


1

Rather than polling for events, where the only option for higher precision is to poll faster, you could try listening for the events directly. You can attach an event listener to the windows event queue like so: // Define a message filter which all messages will pass through private class Filter : IMessageFilter { public bool PreFilterMessage(ref ...


Only top voted, non community-wiki answers of a minimum length are eligible