Question by
s096268 · Dec 02, 2015 at 03:35 PM ·
transformtransform.positionaugmented-realitytranslatetransform.translate
Moving an object smoothly over predetermined distance without defining begin and end points
Hi guys,
so basically I want to move an object like this:
transform.Translate( 150f, 0, 0 );
every time my 'state' (defined as private int state; in my code) is 3.
However, this movement is instant. I want it to be gradual without having to define the begin and end position. Because everytime my code reaches state = 3 it will have a different begin and end position.
My code:
using UnityEngine;
using System.Collections;
namespace Vuforia
{
public class SliderSmooth : MonoBehaviour {
private int state;
private int counter;
// Use this for initialization
void Start () {
state = 0;
}
// Update is called once per frame
void Update () {
///SLIDE LEFT///////////////////////////////////////////////////////////////////////////////////////////
if (state == 0 && DefaultTrackableEventHandler.SliderID == "right")
{
state = 1;
}
if (state == 1 && DefaultTrackableEventHandler.SliderID == "mid")
{
state = 2;
}
if (state == 1 && DefaultTrackableEventHandler.SliderID == "left")
{
state = 0;
}
if (state == 2 && DefaultTrackableEventHandler.SliderID == "left")
{
state = 3;
Debug.Log("Slide Left!");
transform.Translate( 150f, 0, 0 );
state = 0;
}
if (state == 2 && DefaultTrackableEventHandler.SliderID == "right")
{
state = 0;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
///SLIDE RIGHT///////////////////////////////////////////////////////////////////////////////////////////
if (state == 0 && DefaultTrackableEventHandler.SliderID == "left")
{
state = 4;
}
if (state == 4 && DefaultTrackableEventHandler.SliderID == "mid")
{
state = 5;
}
if (state == 4 && DefaultTrackableEventHandler.SliderID == "right")
{
state = 0;
}
if (state == 5 && DefaultTrackableEventHandler.SliderID == "left")
{
state = 0;
}
if (state == 5 && DefaultTrackableEventHandler.SliderID == "right")
{
state = 6;
Debug.Log("Swipe Right!");
transform.Translate( -150f, 0, 0 );
state = 0;
}
//Debug.Log(state);
}
}
}
This script obviously refers to other script, but that is not important at the moment. Everything works fine, just not the gradual movement.
Thank you in advance :)
Comment