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); }
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); }
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; }
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(); }