コード例 #1
0
    private void SetChildShapeAnim(float atPosition, Sequence seq, ThickableShapeView shape)
    {
        shape.Size = 0;
        seq.Insert(atPosition, DOTween.To(() => shape.Size, size => shape.Size = size, 100, 1f).SetEase(Ease.OutCubic));
        seq.Insert(atPosition, DOTween.To(() => shape.Thickness, thickness => shape.Thickness = thickness, 0, 1.2f).SetEase(Ease.OutCubic));
        Vector3 endAnles = new Vector3(0f, 0f, Random.Range(120, 270) * (Random.Range(0, 10) % 2 == 0 ? 1 : -1));

        seq.Insert(atPosition, DOTween.To(() => shape.transform.eulerAngles, eulerAngles => shape.transform.eulerAngles = eulerAngles, endAnles, 1.2f).SetEase(Ease.OutCubic));
        Vector3 endPosition = shape.transform.localPosition + new Vector3(Random.Range(-2, 3), Random.Range(-2, 3)) * 40f;

        seq.Insert(atPosition, shape.transform.DOLocalMove(endPosition, 1f).SetEase(Ease.OutCubic));
    }
コード例 #2
0
    private void Start()
    {
        for (int i = 0; i < _circles.Length; i++)
        {
            ThickableShapeView circle   = _circles[i];
            ThickableShapeView square   = _squares[i];
            ThickableShapeView triangle = _triangles[i];

            circle.Size = 0;

            Sequence seq      = DOTween.Sequence();
            float    interval = 0.3f * i + Random.Range(1, 4) * 0.3f + 1f;
            seq.AppendInterval(interval);
            int endScale = 250 + Random.Range(0, 3) * 30;
            seq.Append(DOTween.To(() => circle.Size, size => circle.Size = size, endScale, 0.3f).SetEase(Ease.OutCubic));
            seq.Join(DOTween.To(() => circle.Thickness, thickness => circle.Thickness = thickness, 0, 1.5f).SetEase(Ease.OutCubic));

            SetChildShapeAnim(interval + 0.15f, seq, square);
            SetChildShapeAnim(interval + 0.2f, seq, triangle);

            seq.Play();
        }
    }