I am trying the whole day to move an object from point A to point B smoothly, so I tried Lerp, MoveTowards
You need to continuously update the position using Lerp. You could do this using a coroutine as follows (assuming Origin and Destination are defined positions):
public IEnumerator moveObject() {
float totalMovementTime = 5f; //the amount of time you want the movement to take
float currentMovementTime = 0f;//The amount of time that has passed
while (Vector3.Distance(transform.localPosition, Destination) > 0) {
currentMovementTime += Time.deltaTime;
transform.localPosition = Vector3.Lerp(Origin, Destination, currentMovementTime / totalMovementTime);
yield return null;
}
}
You would call this coroutine with:
StartCoroutine(moveObject());