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);
}
}