示例#1
0
    public void Throw(Direction direction)
    {
        transform.SetScale(0.25f);

        transform.localEulerAngles = new Vector3(0, 0, direction.ToRotationAngle());

        Vector2 localMoveVector = direction.ToVector2() * shootDistance;

        if (tween != null)
        {
            Debug.LogError("Tween is already running");
            gameObject.DestroySelf();
        }

        tween = new GoTweenChain();
        tween.insert(0, transform.localPositionTo(shootDuration, localMoveVector, true).eases(shootEase));
        tween.insert(0, transform.scaleTo(0.125f, 1).eases(GoEaseType.QuartIn));
        tween.insert(0.25f, transform.scaleTo(0.5f, 0).eases(GoEaseType.QuadOut));
        tween.insertAction(timeBetweenWeapons, () => { if (onEnd != null)
                                                       {
                                                           onEnd();
                                                       }
                           });
        tween.Start();
        tween.setOnCompleteHandler(c => gameObject.DestroySelf());
    }