Problem pc/android conversion

Hello ,I have a problem with my code for a conversion of a pc script to an android script. I have 2 codes, one for the control of character and the other for the camera. And I would like to move my character with a joystick and the main camera by sliding the finger on the screen.
My code on the Player:

    var currentGun : GameObject;
    var distToPickUpGun : float = 6;
    var throwGunUpForce : float = 100;
    var throwGunForwardForce : float = 300;
    var waitFrameForSwitchGuns : int = -1;

    var walkAcceleration : float = 5;
    var walkAccelAirRacio : float = 0.1;
    var walkDeacceleration : float = 5;
    @HideInInspector
    var walkDeaccelerationVolx : float;
    @HideInInspector
    var walkDeaccelerationVolz : float;

    var cameraObject : GameObject;
    var maxWalkSpeed : float = 20;
    @HideInInspector
    var horizontalMovement : Vector2;

    var jumpVelocity : float = 20;
    @HideInInspector
    var grounded : boolean = false;
    var maxSlope : float = 60;

    function LateUpdate ()
    {
       waitFrameForSwitchGuns -= 1;

       
       horizontalMovement = Vector2(rigidbody.velocity.x, rigidbody.velocity.z);
       if (horizontalMovement.magnitude > maxWalkSpeed)
       {
          horizontalMovement = horizontalMovement.normalized;
          horizontalMovement *= maxWalkSpeed;      
       }
       rigidbody.velocity.x = horizontalMovement.x;
       rigidbody.velocity.z = horizontalMovement.y;
       
       if (grounded){
          rigidbody.velocity.x = Mathf.SmoothDamp(rigidbody.velocity.x, 0, walkDeaccelerationVolx, walkDeacceleration);
          rigidbody.velocity.z = Mathf.SmoothDamp(rigidbody.velocity.z, 0, walkDeaccelerationVolz, walkDeacceleration);}
       
       transform.rotation = Quaternion.Euler(0, cameraObject.GetComponent(MouseLookScript).currentYRotation, 0);
       
       if (grounded)
          rigidbody.AddRelativeForce(Input.GetAxis("Horizontal") * walkAcceleration * Time.deltaTime, 0, Input.GetAxis("Vertical") * walkAcceleration * Time.deltaTime);
       else
          rigidbody.AddRelativeForce(Input.GetAxis("Horizontal") * walkAcceleration * walkAccelAirRacio * Time.deltaTime, 0, Input.GetAxis("Vertical") * walkAcceleration * walkAccelAirRacio * Time.deltaTime);
             
       if (Input.GetButtonDown("Jump") && grounded)
          rigidbody.AddForce(0,jumpVelocity,0);
    }

    function OnCollisionStay (collision : Collision)
    {
       for (var contact : ContactPoint in collision.contacts)
       {
          if (Vector3.Angle(contact.normal, Vector3.up) < maxSlope)
             grounded = true;
       }
    }

    function OnCollisionExit ()
    {
       grounded = false;
    }

The code on the MainCamera:

var defaultCameraAngle : float = 60;
@HideInInspector
var currentTargetCameraAngle : float = 60;
@HideInInspector
var racioZoom : float = 1;
@HideInInspector
var racioZoomV : float;

var racioZoomSpeed : float = 0.2;

var lookSensitivity : float = 5;
@HideInInspector
var yRotation : float;
@HideInInspector
var xRotation : float;
@HideInInspector
var currentYRotation : float;
@HideInInspector
var currentXRotation : float;
@HideInInspector
var yRotationV : float;
@HideInInspector
var xRotationV : float;
var lookSmoothDamp : float = 0.1;
@HideInInspector
var currentAimRacio : float = 1;

var headbobSpeed : float = 1;
@HideInInspector
var headbobStepCounter : float;
var headbobAmountX : float = 1;
var headbobAmountY : float = 1;
@HideInInspector
var parentLastPos : Vector3;
var eyeHeightRacio : float = 0.9;

function Awake ()
{
	parentLastPos = transform.parent.position;
}

function Update () 
{
	if (transform.parent.GetComponent(PlayerMovementScript).grounded)
		headbobStepCounter += Vector3.Distance(parentLastPos, transform.parent.position) * headbobSpeed;
	transform.localPosition.x = Mathf.Sin(headbobStepCounter) * headbobAmountX * currentAimRacio;
	transform.localPosition.y = (Mathf.Cos(headbobStepCounter * 2) * headbobAmountY * currentAimRacio) + (transform.parent.localScale.y * eyeHeightRacio) - (transform.parent.localScale.y / 2);
	
	parentLastPos = transform.parent.position;

	if (currentAimRacio == 1)
		racioZoom = Mathf.SmoothDamp(racioZoom, 1, racioZoomV, racioZoomSpeed);
	else
		racioZoom = Mathf.SmoothDamp(racioZoom, 0, racioZoomV, racioZoomSpeed);
		
	camera.fieldOfView = Mathf.Lerp(currentTargetCameraAngle, defaultCameraAngle, racioZoom);

	yRotation += Input.GetAxis("Mouse X") * lookSensitivity * currentAimRacio;
	xRotation -= Input.GetAxis("Mouse Y") * lookSensitivity * currentAimRacio;
	
	xRotation = Mathf.Clamp(xRotation, -90, 90);
	
	currentXRotation = Mathf.SmoothDamp(currentXRotation, xRotation, xRotationV, lookSmoothDamp);
	currentYRotation = Mathf.SmoothDamp(currentYRotation, yRotation, yRotationV, lookSmoothDamp);
	
	transform.rotation = Quaternion.Euler(currentXRotation, currentYRotation, 0);

1 Answer

1

Looks like you have forgotten to make use of the Input.GetTouch() code which is how the touch screen is used on Android. Alternatively look at using Joystick.js in Standard Assets (Mobile).