Question by 
               safak93 · Sep 17, 2016 at 03:45 PM · 
                rotationrotation axis  
              
 
              Rotation on all axes
I'm trying to roate the gameobject like the video below in the editor mode but somehow I can't bring it to work. It's rotating only in one axis.
https://www.youtube.com/watch?v=TOqnVteUo64
Can someone help me?
 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
 
 public class Rotation : MonoBehaviour {
 
     private float angle = 180f;
     
     void FixedUpdate () {
             List<Touch> touches = InputHelper.GetTouches ();
             
             if (touches.Count > 0) {
                 foreach (Touch touch in touches) {
                     switch (touch.phase) {
                     case TouchPhase.Began:
                         break;
                         
                     // Determine direction by comparing the current touch position with the initial one.
                     case TouchPhase.Moved:
                         angle += touch.deltaPosition.x * 0.5f;
                         
                         if (angle < 95f) {
                             angle = 95f;
                         } else if (angle > 265f) {
                             angle = 265f;
                         }
                         
                         transform.localRotation = Quaternion.Euler (transform.rotation.x, -angle, transform.rotation.z);
                         break;
                         
                     // Report that a direction has been chosen when the finger is lifted.
                     case TouchPhase.Ended:
                         break;
                     }
                 }
             }
     }
 }
 
               Inputhelper:
 using UnityEngine;
 using System.Collections;
 using System.Collections.Generic;
 
 public class InputHelper : MonoBehaviour {
     
     private static TouchCreator lastFakeTouch;
     
     public static List<Touch> GetTouches()
     {
         List<Touch> touches = new List<Touch>();
         touches.AddRange(Input.touches);
         #if UNITY_EDITOR
         if(lastFakeTouch == null) lastFakeTouch = new TouchCreator();
         if(Input.GetMouseButtonDown(0))
         {
             lastFakeTouch.phase = TouchPhase.Began;
             lastFakeTouch.deltaPosition = new Vector2(0,0);
             lastFakeTouch.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
             lastFakeTouch.fingerId = 0;
         }
         else if (Input.GetMouseButtonUp(0))
         {
             lastFakeTouch.phase = TouchPhase.Ended;
             Vector2 newPosition = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
             lastFakeTouch.deltaPosition = newPosition - lastFakeTouch.position;
             lastFakeTouch.position = newPosition;
             lastFakeTouch.fingerId = 0;
         }
         else if (Input.GetMouseButton(0))
         {
             lastFakeTouch.phase = TouchPhase.Moved;
             Vector2 newPosition = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
             lastFakeTouch.deltaPosition = newPosition - lastFakeTouch.position;
             lastFakeTouch.position = newPosition;
             lastFakeTouch.fingerId = 0;
         }
         else
         {
             lastFakeTouch = null;
         }
         if (lastFakeTouch != null) touches.Add(lastFakeTouch.Create());
         #endif
         
         
         return touches;      
     }
     
 }
 
              
               Comment
              
 
               
              Your answer
 
             Follow this Question
Related Questions
How to rotate an object relative to another different object's axies? 0 Answers
Make GameObject rotate around another around random axis but with fixed distance 0 Answers
How would I add rotation limits to this? 1 Answer
How can I flip a player over the Horizontal and Vertical axis? 0 Answers
Get object's rotation around axis defined by vector 2 Answers