Beispiel #1
0
    //PLAYER EFFECTS
    PlayerEffect CreatePlayerEffect(DiContainer _, TraceSettings.EffectType effectType, int i, Transform parent)
    {
        PlayerEffect instPrefab = null;

        if (effectType == TraceSettings.EffectType.MainEffect)
        {
            instPrefab = GetPlayerEffectPrefab(_effectsSettings.playerMainParticleEffects, i, parent);
        }
        else if (effectType == TraceSettings.EffectType.DieEffect)
        {
            instPrefab = GetPlayerEffectPrefab(_effectsSettings.playerDieEffects, i, parent);
        }
        else if (effectType == TraceSettings.EffectType.AdditionalEffect)
        {
            instPrefab = GetPlayerEffectPrefab(_effectsSettings.playerShield, i, parent);
        }
        else if (effectType == TraceSettings.EffectType.OuterMainEffect)
        {
            instPrefab = GetPlayerEffectPrefab(_effectsSettings.playerOuterParticleEffects, i, parent);
        }

        return(instPrefab);
    }
Beispiel #2
0
    //OBSTACLE EFFECTS
    ObstacleEffect CreateObstacleEffect(DiContainer _, TraceSettings.EffectType effectType, TraceSettings.ColorTypeList.ColorType colorType, Transform parent)
    {
        GameObject     prefab     = null;
        ObstacleEffect instPrefab = null;


        if (effectType == TraceSettings.EffectType.DieEffect)
        {
            Quaternion startRot = Quaternion.identity;
            Vector3    startPos = Vector3.zero;
            foreach (var obstacleEffect in _effectsSettings.obstacleBreakEffects)
            {
                if (obstacleEffect.colorType == colorType && obstacleEffect.effectPrefab != null)
                {
                    prefab = obstacleEffect.effectPrefab;

                    startRot = prefab.transform.localRotation;
                    startPos = prefab.transform.localPosition;

                    prefab.SetActive(false);
                }
            }

            if (prefab != null)
            {
                instPrefab = Container.InstantiatePrefabForComponent <ObstacleEffect>(prefab);
                if (parent != null)
                {
                    instPrefab.transform.SetParent(parent);
                }

                //instPrefab.transform.localRotation = startRot;
                instPrefab.transform.localPosition = Vector3.zero;
            }
        }
        else if (effectType == TraceSettings.EffectType.WinEffect)
        {
            Quaternion startRot = Quaternion.identity;
            Vector3    startPos = Vector3.zero;
            foreach (var obstacleEffect in _effectsSettings.obstacleNotPassingEffects)
            {
                if (obstacleEffect.colorType == colorType && obstacleEffect.effectPrefab != null)
                {
                    prefab   = obstacleEffect.effectPrefab;
                    startRot = prefab.transform.localRotation;
                    startPos = prefab.transform.localPosition;
                    prefab.SetActive(false);
                }
            }
            if (prefab != null)
            {
                instPrefab = Container.InstantiatePrefabForComponent <ObstacleEffect>(prefab);
                if (parent != null)
                {
                    instPrefab.transform.SetParent(parent);
                }
                // instPrefab.transform.localRotation = startRot;
                instPrefab.transform.localPosition = Vector3.zero;
            }
        }
        return(instPrefab);
    }