public void moveToPoint(Vector3 destination) { //Debug.Log("") iTween.Stop(bee); if (destination.x == transform.position.x && destination.y == transform.position.y) { moveToPointComplete(); } if (destination.x < transform.position.x) { Vector3 beeScale = bee.transform.localScale; beeScale.x = -1; bee.transform.localScale = beeScale; bee.transform.rotation = Quaternion.Euler(new Vector3(0, 0, 15)); } else { Vector3 beeScale = bee.transform.localScale; beeScale.x = 1; bee.transform.localScale = beeScale; bee.transform.rotation = Quaternion.Euler(new Vector3(0, 0, -15)); } List <Vector3> points = new List <Vector3>(); points.Add(transform.position); points.Add(new Vector3(transform.position.x, transform.position.y + 100, transform.position.z)); points.Add(new Vector3(destination.x, transform.position.y + 100, transform.position.z)); points.Add(new Vector3(destination.x, destination.y, transform.position.z)); BezierPath bezierPath = new BezierPath(); // bezierPath.Interpolate(points, .25f); bezierPath.SetControlPoints(points); List <Vector3> drawingPoints = bezierPath.GetDrawingPoints2(); Vector3[] path = new Vector3[drawingPoints.Count]; for (int i = 0; i < drawingPoints.Count; i++) { path[i] = drawingPoints[i]; } float distance = AGGameState.modFloat(destination.x - transform.position.x); float speed = 1000.0f; float time = distance / speed; iTween.MoveTo(gameObject, iTween.Hash("path", path, "time", time, "onComplete", "moveToPointComplete", "easetype", iTween.EaseType.linear)); }