Question by 
               LeonidAbashidze · Dec 09, 2018 at 04:42 PM · 
                errormovementrotaterotate objectmoving  
              
 
              Moving And Rotation 2D Object (Touch)
Hello everyone, i'm New one & need help :(
i have problem with moving and rotating object.
Check the problem after two finger touches: https://youtu.be/UMbO8s80-jo
as i understand i need Touches instead of one touch ...
this code works but objects starts "blinking" when i touch second finger to move ...
 using UnityEngine;
 using System.Collections;
 
 public class Rotate1 : MonoBehaviour
 {
 
  
 
     [SerializeField]
     private float turnSpeed = 5;
 
     
     private Vector2 movement;
 
     void Update()
                
     {
         Vector2 currentPosition = transform.position;
         foreach (Touch touch in Input.touches)
 
             if (Input.touchCount == 2)
         {
             Touch touches = Input.GetTouch(0);
 
             if (touch.phase == TouchPhase.Moved)
             {
                 Vector2 moveTowards = Camera.main.ScreenToWorldPoint(touch.position);
                 
                 movement = moveTowards - currentPosition;
                 movement.Normalize();
             }
         }
 
         float targetAngle = Mathf.Atan2(movement.y, movement.x) * Mathf.Rad2Deg;
         transform.rotation = Quaternion.Slerp(transform.rotation,
                                               Quaternion.Euler(0, 0, targetAngle),
                                               turnSpeed * Time.deltaTime);
         transform.up = movement;
 
         ///moving    
 
         if (Input.touchCount > 0)
             foreach (Touch touch in Input.touches)
 
             {
 
                 Touch touches = Input.GetTouch(0);
             Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touches.position);
             touchPosition.z = 0f;
             transform.position = touchPosition;
         }
 
 
     }
 
     
 }
               Comment
              
 
               
              With other code but problem is the same
 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class $$anonymous$$oveandrot : $$anonymous$$onoBehaviour
 {
     public float speed = 5f;
 
     private void Update()
     {
 
         if (Input.touchCount == 2)
         {
 
             Touch touch = Input.GetTouch(0);
             Vector2 direction = Camera.main.ScreenToWorldPoint(touch.position) - transform.position;
             float angle = $$anonymous$$athf.Atan2(direction.y, direction.x) * $$anonymous$$athf.Rad2Deg;
             Quaternion rotation = Quaternion.AngleAxis(angle, Vector3.forward);
             transform.rotation = Quaternion.Slerp(transform.rotation, rotation, speed * Time.deltaTime);
 
             transform.up = direction;
         }
         if (Input.touchCount > 0)
         {
 
             Touch touch = Input.GetTouch(0);
             Vector3 touchPosition = Camera.main.ScreenToWorldPoint(touch.position);
             touchPosition.z = 0f;
             transform.position = touchPosition;
         }
 
     }
 }
 
 
Your answer
 
 
             Follow this Question
Related Questions
Rotate object to joystick and position direction 0 Answers
How to make a 2d platformer with a rolling ball as a player? 1 Answer
How touch works 1 Answer
I have an error with my scripts PLEASE HELP ME 2 Answers
How to speed up enemy after time? 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                