Пример #1
0
    /// <summary>
    /// starts a tween to the target spot, optionally setting the destination position to a "GoodSpotForCmder"
    /// </summary>
    /// <param name="trans"></param>
    /// <param name="destSpot"></param>
    /// <param name="cmderAdjusted"></param>
    public void StartTween(Transform trans, ZoneSpot destSpot, bool cmderAdjusted)
    {
        TransformTween newTween = GetATween();

        newTween.ResetData(trans, destSpot, cmderAdjusted);
        activeTweens.Add(newTween);
        StartCoroutine(TweenRoutine(newTween));
    }
Пример #2
0
    /// <summary>
    /// recycles or creates a new tween
    /// </summary>
    /// <returns></returns>
    public TransformTween GetATween()
    {
        TransformTween returnedTween = null;

        if (inactiveTweens.Count > 0)
        {
            returnedTween = inactiveTweens[0];
            inactiveTweens.RemoveAt(0);
        }
        else
        {
            returnedTween = new TransformTween();
        }

        return(returnedTween);
    }
Пример #3
0
    IEnumerator TweenRoutine(TransformTween tween)
    {
        Vector3 originalCmderPos = tween.movingTrans.transform.position;

        tween.destPos = tween.cmderAdjusted ? tween.destSpot.GetGoodSpotForCommander(
            GameController.GetCommandersInZone(tween.destSpot.data as Zone).Count - 1) :
                        tween.destSpot.transform.position;

        while (tween.elapsedTweenTime < TWEEN_ANIM_MOVE_DURATION)
        {
            tween.movingTrans.transform.position =
                Vector3.Slerp(originalCmderPos, tween.destPos,
                              tween.elapsedTweenTime / TWEEN_ANIM_MOVE_DURATION);
            tween.elapsedTweenTime += Time.deltaTime;
            yield return(null);
        }

        tween.movingTrans.transform.position = tween.destPos;
        activeTweens.Remove(tween);
        inactiveTweens.Add(tween);
    }
Пример #4
0
 void Start()
 {
     TransformTween.SwingTransform(transform, 2, 2).Repeat(-1).Start();
 }