Esempio n. 1
0
    public void CreateWave(Wave wave)
    {
        waveSequence.Kill(false);

        waveSequence = DOTween.Sequence();

        foreach (EnemyType enemy in wave.enemies)
        {
            EnemyType temp = enemy;
            //mask.forceDefaultMaterialOnChilds = true;
            waveSequence.AppendCallback(() => {
                Debug.LogFormat("Create {0}", temp);
                GameObject enemyObject = Instantiate(prefabMap[temp]) as GameObject;
                enemyObject.transform.SetParent(transform);
                enemyObject.transform.localPosition = leftEmitter.localPosition;
                enemyObject.GetComponent <Enemy>().StartMotion(wave.path);
//				mask.update();
                foreach (SpriteRenderer renderer in enemyObject.GetComponentsInChildren <SpriteRenderer>())
                {
                    mask.updateSprites(renderer.transform);
                }
            });
            waveSequence.AppendInterval(wave.timeBetweenEmits);
        }
    }
Esempio n. 2
0
    /// <summary>
    /// Find mask component for <code>t</code> and call <code>updateSprites(t)</code>.
    /// </summary>
    public static SpriteMask updateFor(Transform t)
    {
        SpriteMask mask = getParentMask(t);

        if (mask != null)
        {
            mask.updateSprites(t);
        }

        return(mask);
    }
    void Start()
    {
        if (target == null)
        {
            target = gameObject;
        }

        SpriteMask mask = target.AddComponent <SpriteMask> ();

        mask.type = SpriteMask.Type.Rectangle;
        mask.size = new Vector2(350f, 350f);

        attachSprite(spriteCloud, new Vector2(110f, 160f)).sortingOrder     = 1;
        attachSprite(spriteTree, new Vector2(-120f, 75f)).sortingOrder      = 2;
        attachSprite(spriteAnimal1, new Vector2(100f, -40f)).sortingOrder   = 3;
        attachSprite(spriteAnimal2, new Vector2(-160f, -100f)).sortingOrder = 4;

        // Call this to get sprites masked
        mask.updateSprites();
    }