Пример #1
0
 public void GotoSlot(HauntCandleHolder newSlot, float duration)
 {
     slot = newSlot;
     mover.SetDestinationObject(slot.candlePosition);
     mover.PlayAnimation(0, 1, duration, FillSlot);
     onPutInSlot.Invoke();
 }
Пример #2
0
    IEnumerator ShowSlotsSequence()
    {
        bool eventSent = false;

        for (int i = 0; i < cost; i++)
        {
            // Instantiate candle holder
            HauntCandleHolder newHolder = Instantiate(candleHolderPrefab, transform.position + slotPts[i], Quaternion.identity)
                                          .GetComponent <HauntCandleHolder>();

            newHolder.transform.parent = transform;
            newHolder.PlayAnimation(0, 1, slotAnimDuration);
            candleHolders.Add(newHolder);

            // instantiate line to center
            LineRendererStraight line = Instantiate(stringPrefab, transform).GetComponent <LineRendererStraight>();
            line.startPoint = transform;
            line.endPoint   = newHolder.transform;

            // instantiate line to prev candle
            if (i > 1)
            {
                LineRendererStraight line2 = Instantiate(stringPrefab, transform).GetComponent <LineRendererStraight>();
                line2.startPoint = candleHolders[i - 1].transform;
                line2.endPoint   = newHolder.transform;
            }

            float waitTime = spawnWaitAtIndex.Evaluate(i);
            yield return(new WaitForSecondsRealtime(waitTime));

            // tell the playmaker when to progress to next stage
            float progress = CalculateProgress(i, cost);
            Debug.Log("Spawn candle holders progress: " + progress);
            if (progress > progressThreshhold && !eventSent)
            {
                eventSent = true;
                playMaker.SendEvent("next");
            }
        }
    }