Esempio n. 1
0
    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));
    }