- Home /
 
               Question by 
               Tubestorm · May 18, 2020 at 02:04 PM · 
                c#controllercamera rotatetouch controlsswipe  
              
 
              How to create a Touch Pad to control camera rotation
Hey!
I'm working on mobile game, in unity. I'm having some issues with the camera, I want the camera to rotate only in the yellow field, in the image below. does anyone know how i can do this. 
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine.EventSystems;
 using UnityEngine;
 
 public class Swiper : MonoBehaviour
 {
     public static Swiper instance;
     private Touch initTouch = new Touch();
     public Camera cam;
 
     private float rotX = 0f;
     private float rotY = 0f;
     private Vector3 origRot;
 
     public float rotSpeed = 0.5f;
     public float dir = -1;
 
 
 
     // Start is called before the first frame update
     void Start()
     {
         instance = this;
         origRot = cam.transform.eulerAngles;
         rotX = origRot.x;
         rotY = origRot.y;
     }
 
     // Update is called once per frame
     void FixedUpdate()
     {
             foreach (Touch touch in Input.touches)
             {
                 if (touch.phase == TouchPhase.Began)
                 {
                     initTouch = touch;
                 }
                 else if (touch.phase == TouchPhase.Moved)
                 {
                     //swiping
                     float deltaX = initTouch.position.x - touch.position.x;
                     float deltaY = initTouch.position.y - touch.position.y;
                     rotX -= deltaY * Time.deltaTime * rotSpeed * dir;
                     rotY += deltaX * Time.deltaTime * rotSpeed * dir;
                     rotX = Mathf.Clamp(rotX, -20f, 20f);
                     rotY = Mathf.Clamp(rotY, -20f, 20f);
                     WorldInteraction.instance.rigidbody.transform.localEulerAngles = new Vector3(0, rotY, 0);
                     cam.transform.eulerAngles = new Vector3(rotX, rotY, 0f);
                 }
                 else if (touch.phase == TouchPhase.Ended)
                 {
                     initTouch = new Touch();
                 }
 
 
 
 
             }
     
     }
 }
 
                 
                screen-shot-2020-05-18-at-100236-am.png 
                (230.0 kB) 
               
 
              
               Comment
              
 
               
              Your answer
 
 
             