Hello… so i’m building a spaceship game with code I got from another project. The inputs used to use mouse to calculate rotation and all that other stuff, but now I’m trying to use an xbox controller with inputs I have already set up. The problem is that I can’t use:
float temp = Vector2.Distance(Input.GetAxis ("“xbox_mac_R Joystick_Horizontal”, screenCenter);
because I get these error messages:
The best overloaded method match for `UnityEngine.Vector2.Distance(UnityEngine.Vector2, UnityEngine.Vector2)’ has some invalid arguments.
And:
#1’ cannot convert float' expression to type
UnityEngine.Vector2’
Any help would be excellent! Here is my original code without any errors:
using UnityEngine;
using System.Collections;
public class Ship_Rotate : MonoBehaviour {
public float rotateSpeed;
public float centerSize;
public float control;
Rigidbody myBody;
Vector2 screenCenter;
void Start ()
{
screenCenter = new Vector2 (Screen.width/2, Screen.height/2);
myBody = GetComponent<Rigidbody>();
}
void Update ()
{
float temp = Vector2.Distance(Input.GetAxis ("xbox_mac_R Joystick_Horizontal"), screenCenter);
if(Input.GetButton("xbox_mac_LB"))
{
myBody.AddRelativeTorque(0, 0, rotateSpeed * Time.deltaTime);
}
else if (Input.GetButton("xbox_mac_RB"))
{
myBody.AddRelativeTorque(0, 0, -rotateSpeed * Time.deltaTime);
}
if (temp>centerSize)
{
if (Input.GetAxis("xbox_mac_R Joystick_Horizontal") > screenCenter.x + centerSize/2)
{
myBody.AddRelativeTorque (0, rotateSpeed * (Time.deltaTime*temp/control), 0);
}
else if (Input.GetAxis("xbox_mac_R Joystick_Horizontal") <screenCenter.x - centerSize/2)
{
myBody.AddRelativeTorque (0, -rotateSpeed * (Time.deltaTime*temp/control), 0);
}
if (Input.GetAxis("xbox_mac_R Joystick_Vertical") > screenCenter.y + centerSize/2)
{
myBody.AddRelativeTorque (-rotateSpeed * (Time.deltaTime*temp/control), 0, 0);
}
else if (Input.GetAxis("xbox_mac_R Joystick_Vertical") < screenCenter.y - centerSize/2)
{
myBody.AddRelativeTorque (rotateSpeed * (Time.deltaTime*temp/control), 0, 0);
}
}
}
}