- Home /
PS3 Analogue Stick Axis Values
I have connected a PS3 DS3 Sixaxis controller to my laptop and set it up to work with unity. Everything works fine, but I noticed whist debugging the X and Y values of both the left and right analogue sticks that when the Y axis on the right stick is changed, the X axis value for the left stick also changes to the same value as that of the right stick. Does anybody know what causes this and how it can be sorted so that this does not happen? Many thanks.
P.S: The debugging code:
using UnityEngine;
using System.Collections;
public class AxisDisplay : MonoBehaviour {
private string leftX = "0";
private string leftY = "0";
private string rightX = "0";
private string rightY = "0";
private float leftXValue;
private float leftYValue;
private float rightXValue;
private float rightYValue;
public float leftXPercentage = 0;
public float leftYPercentage = 0;
public float rightXPercentage = 0;
public float rightYPercentage = 0;
void Update(){
leftX = Input.GetAxis("Horizontal").ToString();
leftY = Input.GetAxis("Vertical").ToString();
rightX = Input.GetAxis("Mouse X").ToString();
rightY = Input.GetAxis("Mouse Y").ToString();
leftXValue = Input.GetAxis("Horizontal");
leftYValue = Input.GetAxis("Vertical");
rightXValue = Input.GetAxis("Mouse X");
rightYValue = Input.GetAxis("Mouse Y");
leftXPercentage = (leftXValue - -1.0f) / (1.0f - -1.0f);
leftYPercentage = (leftYValue - -1.0f) / (1.0f - -1.0f);
rightXPercentage = (rightXValue - -0.5061729f) / (0.5061729f - -0.5061729f);
rightYPercentage = (rightYValue - -0.6296296f) / (0.6296296f - -0.6296296f);
}
void OnGUI(){
OnScreenText();
OnScreenJoystickLeft();
OnScreenJoystickRight();
}
private void OnScreenText(){
GUI.color = Color.black;
if(leftX == "0.01077548"){
GUI.Label(new Rect(25,25,200,25), "Left Stick X: 0");
} else {
GUI.Label(new Rect(25,25,500,25), "Left Stick X: " + leftX);
}
if(leftY == "0.01077548"){
GUI.Label(new Rect(25,50,200,25), "Left Stick Y: 0");
} else {
GUI.Label(new Rect(25,50,500,25), "Left Stick Y: " + leftY);
}
GUI.Label(new Rect(25,75,500,25), "Right Stick X: " + rightX);
GUI.Label(new Rect(25,100,500,25), "Right Stick Y: " + rightY);
}
}
Answer by wibble82 · Apr 30, 2014 at 09:55 PM
It's a bit odd you're storing those strings, but that shouldn't be a problem technically.
Your code looks like it should work, assuming your input settings are correct (see http://docs.unity3d.com/Documentation/Manual/Input.html).
I would recommend testing the pad in the windows pad confit and ideally another game, or testing it with a different pad (ideally both). From past experience I have found various unofficial ds3 drivers to be a little ropey.
Your answer
![](https://koobas.hobune.stream/wayback/20220613143953im_/https://answers.unity.com/themes/thub/images/avi.jpg)