Hey, i have this code currently for my mouselook of a first person camera: Code (JavaScript): @script AddComponentMenu ("Camera-Control/Mouse Look") //PS Vita var PSVita : boolean = false; var Stick : String; enum RotationAxes { MouseXAndY = 0, MouseX = 1, MouseY = 2} var axes = RotationAxes.MouseXAndY; var normalMinimumY : float = -90; var normalMaximumY : float = 85; var proneMinimumY : float = -20; var proneMaximumY : float = 40; var offsetX : float = 0; var offsetY : float = 0; var kickTime : float = 0; var mineCamera : Camera; var menu : MainMenu; var controllerScript : CODcontroller; private var sensitivity : float; private var savedSensitivity : float = 2.0; private var minimumX : float = -360; private var maximumX : float = 360; private var minimumY : float; private var maximumY : float; private var rotationX : float = 0; private var rotationY : float = 0; private var originalRotation : Quaternion; function Start() { if (rigidbody) rigidbody.freezeRotation = true; originalRotation = transform.localRotation; Screen.lockCursor = true; } function Update () { if(!Screen.lockCursor) { //savedSensitivity = menu.sensitivity; //Update sensitivity only when cursor isn't locked return; } /* if(controllerScript.state == 0 || controllerScript.state == 1) { sensitivity = savedSensitivity * Time.timeScale; //you can add " * Time.timeScale" if you want affect sensitivity in slow motion minimumY = normalMinimumY; maximumY = normalMaximumY; } else if(controllerScript.state == 2) { sensitivity = savedSensitivity/2 * Time.timeScale; //you can add " * Time.timeScale" if you want affect sensitivity in slow motion minimumY = proneMinimumY; maximumY = proneMaximumY; } */ if (axes == RotationAxes.MouseXAndY) { rotationX += Input.GetAxis("Mouse X") * sensitivity /30 * (mineCamera.fieldOfView + offsetX); rotationY += Input.GetAxis("Mouse Y") * sensitivity /30 * (mineCamera.fieldOfView + offsetY); rotationX = ClampAngle (rotationX, minimumX, maximumX); rotationY = ClampAngle (rotationY, minimumY, maximumY); var xQuaternion : Quaternion = Quaternion.AngleAxis (rotationX, Vector3.up); var yQuaternion : Quaternion = Quaternion.AngleAxis (rotationY, Vector3.left); transform.localRotation = originalRotation * xQuaternion * yQuaternion; } if(axes == RotationAxes.MouseX) { if(PSVita) transform.Rotate(0, Input.GetAxis(Stick + "StickH") * sensitivity /30 * mineCamera.fieldOfView + offsetX, 0); else transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivity /30 * mineCamera.fieldOfView + offsetX, 0); } if(axes == RotationAxes.MouseY) { if(PSVita) rotationY += Input.GetAxis(Stick + "StickV") * sensitivity / 60 * mineCamera.fieldOfView + offsetY; else rotationY += Input.GetAxis("Mouse Y") * sensitivity /60 * mineCamera.fieldOfView + offsetY; rotationY = ClampAngle (rotationY, minimumY, maximumY); yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left); transform.localRotation = originalRotation * yQuaternion; /* if(rotationY > proneMaximumY && controllerScript.state == 2) { transform.localRotation = Quaternion.Slerp(transform.localRotation, Quaternion.Euler (-35, 0, 0),Time.deltaTime*5); rotationY = 360 - transform.rotation.eulerAngles.x; } else if (rotationY < proneMinimumY && controllerScript.state == 2) { transform.localRotation = Quaternion.Slerp(transform.localRotation, Quaternion.Euler (15, 0, 0),Time.deltaTime*4); rotationY = -transform.rotation.eulerAngles.x; } */ } //KickBack from weaponscript if(kickTime < 0) { //reset offset offsetY = Mathf.SmoothDamp(offsetY, 0.0, offsetY, Time.deltaTime); offsetX = Mathf.SmoothDamp(offsetX, 0.0, offsetX, Time.deltaTime); } else { kickTime -= Time.deltaTime; } } static function ClampAngle (angle : float, min : float, max : float) : float { if(angle < -360.0) angle += 360.0; if(angle > 360.0) angle -= 360.0; return Mathf.Clamp (angle, min, max); } i am following this example i was given on this forum a while back: Code (CSharp): using UnityEngine; using System.Collections; public class Joystick : MonoBehaviour { public string Stick; void Update () { const float smooth = 5.0F; const float tiltAngle = -90.0F; // See InputManager (Edit > Project > Input) for mapping from <string> to <axis> float x = Input.GetAxis(Stick + "StickH") * tiltAngle; float y = Input.GetAxis(Stick + "StickV") * tiltAngle; Quaternion target = Quaternion.Euler(y, x, 0); transform.rotation = Quaternion.Slerp(transform.rotation, target, Time.deltaTime * smooth); } } however the players camera is not turning
var axes = RotationAxes.MouseXAndY; .... if(axes == RotationAxes.MouseX) { if(PSVita) transform.Rotate(0, Input.GetAxis(Stick + "StickH") * sensitivity /30 * mineCamera.fieldOfView + offsetX, 0); else transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivity /30 * mineCamera.fieldOfView + offsetX, 0); } ----- See the problem there? Your "axes" variable will never work for that condition where you have the PSVita code, for one.
that problem has been fixed however in the build of the game i still cannot look around using the right stick