Exemplo n.º 1
0
    void OnSceneGUI()
    {
        SkyBezierCurveOject mObject       = (SkyBezierCurveOject)target;
        Transform           starTransform = mObject.transform.parent.transform;
        Quaternion          rotation      = Quaternion.Euler(0f, 0f, 0f);

        for (int i = 0; i < mObject.skyBezierCurve.middlePoints.Count; i++)
        {
            Vector3 temp = mObject.skyBezierCurve.middlePoints [i];
            mObject.skyBezierCurve.middlePoints [i] = checkPoint(ref temp, starTransform, mObject, rotation);
        }
        checkPoint(ref mObject.skyBezierCurve.startPoint, starTransform, mObject, rotation);
        checkPoint(ref mObject.skyBezierCurve.endPoint, starTransform, mObject, rotation);
    }
Exemplo n.º 2
0
    private Vector3 checkPoint(ref Vector3 point, Transform starTransform, SkyBezierCurveOject mObject, Quaternion rotation)
    {
        Vector3 temp = point;

        Vector3 oldPoint = starTransform.TransformPoint(rotation * temp);
        Vector3 newPoint = Handles.FreeMoveHandle
                               (oldPoint, Quaternion.identity, 0.1f, pointSnap, Handles.DotCap);

        if (oldPoint != newPoint)
        {
            point = Quaternion.Inverse(rotation) *
                    starTransform.InverseTransformPoint(newPoint);
            mObject.myUpdate();
            mObject.isDirty = true;
        }
        return(point);
    }
Exemplo n.º 3
0
    private Vector3 checkPoint(ref Vector3 point, Transform starTransform, SkyBezierCurveOject mObject, Quaternion rotation)
    {
        Vector3 temp = point;

        Vector3 oldPoint = starTransform.TransformPoint (rotation * temp);
        Vector3 newPoint = Handles.FreeMoveHandle
            (oldPoint, Quaternion.identity, 0.1f, pointSnap, Handles.DotCap);
        if (oldPoint != newPoint) {
            point = Quaternion.Inverse (rotation) *
                starTransform.InverseTransformPoint (newPoint);
            mObject.myUpdate ();
            mObject.isDirty = true;
        }
        return point;
    }
Exemplo n.º 4
0
    public void create()
    {
        animationSquence.RemoveAll();
        elements.Clear();
        for (int i = 0; i < count; i++)
        {
            SkyBezierCurveOject element = Instantiate(skyBezierObject) as SkyBezierCurveOject;
//			element.Init();
            element.skyBezierCurve.endPoint = targarPosition.transform.localPosition;
            element.transform.SetParent(transform, false);
            element.transform.localPosition   = startPosition.transform.localPosition;
            element.transform.localScale      = Vector3.zero;
            element.skyBezierCurve.startPoint = element.transform.localPosition;
            Vector3 temp1 = Vector3.zero;
            temp1.x = genOffset() + element.transform.localPosition.x;
            temp1.y = genOffset();
            Vector3 temp = Vector3.zero;
            temp.x = genOffset() - element.transform.localPosition.x;
            temp.y = genOffset();

            element.skyBezierCurve.middlePoints.Clear();
            element.skyBezierCurve.middlePoints.Add(temp1);
            element.skyBezierCurve.middlePoints.Add(temp);
            element.skyBezierCurve.timeDuration = Random.Range(1, 2);
            element.DelayTime = i * 1f / count;
            element.skyBezierCurve.CreateCurve2();
            element.PlayCallBack.AddCompleteMethod(() => {
                element.RemoveFromParent();
                Destroy(element.gameObject);
            });
//			elements.Add(element);
            element.Play();
//			animation.Add(element);
//			animationSquence.AppendAction(element);
        }

        SkyAniParallel tempSeq = new SkyAniParallel();

        SkyDelayAnimation skyDelay0 = new SkyDelayAnimation();

        skyDelay0.PlayCallBack.AddCompleteMethod(Test2);
        skyDelay0.PlayTime = 3f;
        tempSeq.AppendAction(skyDelay0);
        SkyDelayAnimation skyDelay1 = new SkyDelayAnimation();

        skyDelay1.PlayCallBack.AddCompleteMethod(Test3);
        tempSeq.AppendAction(skyDelay1);

        animationSquence.AppendAction(tempSeq);
//		animationSquence.AppendAction(skyDelay1);
        SkyDelayAnimation skyDelay = new SkyDelayAnimation();

        skyDelay.PlayCallBack.AddCompleteMethod(Test);
//		animation.Add(skyDelay);
//		skyDelay.Play ();
        animationSquence.AppendAction(skyDelay);
//		animationSquence.AppendAction(skyDelay0);
//		foreach (SkyAnimation skyAnimation in animation) {
//			skyAnimation.Play();
//		}
//		animationSquence.RemoveAll ();
        animationSquence.Play();
    }