Can someone please help me fix the script? in unity3D to move forwards and backwards by swiping to the screen,Rotate and move forward script not working
using UnityEngine; using System.Collections;
public class RotateBySwipe : MonoBehaviour { [SerializeField] private Vector3 angles; private Vector2 start;
private float xMultiplier, yMultiplier;
private float x, y, z;
private Vector3 newRot;
private float speed;
void Start () {
xMultiplier = 360f / Screen.width;
yMultiplier = 360f / Screen.height;
speed = 5f;
}
void Update () {
if (Input.touchCount == 1) {
Touch touch = Input.GetTouch (0);
if (touch.phase == TouchPhase.Began) {
start = touch.position;
}
if (touch.phase == TouchPhase.Moved) {
newRot += new Vector3 (touch.position.y - start.y, touch.position.x - start.x);
start = touch.position;
}
}
x = Mathf.Lerp (x, newRot.x, speed * Time.deltaTime);
y = Mathf.Lerp (y, newRot.y, speed * Time.deltaTime);
z = Mathf.Lerp (z, newRot.z, speed * Time.deltaTime);
transform.rotation = Quaternion.Euler (-new Vector3 (x * angles.x * yMultiplier, y * angles.y * xMultiplier, z * angles.z));
}
}
This is what i have so far and works by swiping to left and right and works very nice, but i can't figure out how to make it move forwards and backwards... please can someone help me....,using UnityEngine; using System.Collections;
public class RotateBySwipe : MonoBehaviour { [SerializeField] private Vector3 angles; private Vector2 start;
private float xMultiplier, yMultiplier;
private float x, y, z;
private Vector3 newRot;
private float speed;
void Start () {
xMultiplier = 360f / Screen.width;
yMultiplier = 360f / Screen.height;
speed = 5f;
}
void Update () {
if (Input.touchCount == 1) {
Touch touch = Input.GetTouch (0);
if (touch.phase == TouchPhase.Began) {
start = touch.position;
}
if (touch.phase == TouchPhase.Moved) {
newRot += new Vector3 (touch.position.y - start.y, touch.position.x - start.x);
start = touch.position;
}
}
x = Mathf.Lerp (x, newRot.x, speed * Time.deltaTime);
y = Mathf.Lerp (y, newRot.y, speed * Time.deltaTime);
z = Mathf.Lerp (z, newRot.z, speed * Time.deltaTime);
transform.rotation = Quaternion.Euler (-new Vector3 (x * angles.x * yMultiplier, y * angles.y * xMultiplier, z * angles.z));
}
}
This is the code i have so far , can someone please add the forward and backwards movement to the script please?
Your answer
Follow this Question
Related Questions
How to Setactive(true) the other class ? 0 Answers
DisplayDialog can only be called from the main thread 0 Answers
camera movement in game scane,camera movement inside game scene not working 0 Answers
How to make script remember a counter and display an ad every 5th time? 1 Answer
Slider.value doesn't show the value in real-time but after the execution of the script 1 Answer