Beispiel #1
0
 void Start()
 {
     _playerStateManager.currentObstacleType = TraceSettings.ObstacleType.None;
     _coloringManager = GetComponent <ColoringManager>();
     SetPlayerEffects();
     SetNewMaterialColor(_defaultColor);
     _lastEffect      = _defaultEffect;
     _lastOuterEffect = _defaultOuterEffect;
     _lastColor       = _defaultColor;
 }
Beispiel #2
0
    private void SetPlayerEffects()
    {
        _playerEffectsPooler       = GetComponent <PlayerEffectsPooler>();
        _currentPlayerEffects      = new List <GameObject>(_playerEffectsPooler.GetCurrentMainEffectsList());
        _currentPlayerOuterEffects = new List <GameObject>(_playerEffectsPooler.GetOuterMainEffectsList());


        foreach (var currentPlayerEffect in _currentPlayerEffects)
        {
            var currentEffectManager   = currentPlayerEffect.GetComponent <PlayerEffectManager>();
            var currentEffectColorType = currentEffectManager.GetPlayerEffectColorType();

            if (currentEffectColorType == _traceSettings.traceSettings[0].colorType)
            {
                _defaultEffect = currentPlayerEffect;
                _defaultColor  = currentEffectColorType;
            }
            else if (currentEffectColorType == _traceSettings.traceSettings[1].colorType)
            {
                _tappedEffect = currentPlayerEffect;
                _tappedColor  = currentEffectColorType;
            }
            else if (currentEffectColorType == _traceSettings.traceSettings[2].colorType)
            {
                _holdedEffect = currentPlayerEffect;
                _holdedColor  = currentEffectColorType;
            }
        }

        foreach (var currentPlayerOuterEffect in _currentPlayerOuterEffects)
        {
            var currentEffectManager   = currentPlayerOuterEffect.GetComponent <PlayerEffectManager>();
            var currentEffectColorType = currentEffectManager.GetPlayerEffectColorType();

            if (currentEffectColorType == _traceSettings.traceSettings[0].colorType)
            {
                _defaultOuterEffect = currentPlayerOuterEffect;
            }
            else if (currentEffectColorType == _traceSettings.traceSettings[1].colorType)
            {
                _tappedOuterEffect = currentPlayerOuterEffect;
            }
            else if (currentEffectColorType == _traceSettings.traceSettings[2].colorType)
            {
                _holdedOuterEffect = currentPlayerOuterEffect;
            }
        }
        _playerStateManager.currentPlayerColor = _defaultColor;//write current color to state Manager
    }
    public ModelColorSettings GetMaterialSettings(TraceSettings.ColorTypeList.ColorType colorType)
    {
        ModelColorSettings currentColorSettings = new ModelColorSettings();

        foreach (var modelColorSetting in _modelColorSettings)
        {
            if (modelColorSetting._modelColor == colorType)
            {
                currentColorSettings = modelColorSetting;
            }
        }


        return(currentColorSettings);
    }
Beispiel #4
0
    private void SetNewMaterialColor(TraceSettings.ColorTypeList.ColorType colorType)
    {
        var materials = _coloringManager.GetModelMaterials();
        var currentMaterialSettings = _coloringManager.GetMaterialSettings(colorType);

        for (int i = 0; i < materials.Count; i++)
        {
            Color mainColor = Color.clear;
            Color emitColor = Color.clear;
            Color specColor = Color.clear;

            ColorUtility.TryParseHtmlString(currentMaterialSettings._materialsSettings[i]._mainColor, out mainColor);
            ColorUtility.TryParseHtmlString(currentMaterialSettings._materialsSettings[i]._hdrColor, out emitColor);
            ColorUtility.TryParseHtmlString(currentMaterialSettings._materialsSettings[i]._specColor, out specColor);

            materials[i].SetColor("_Color", mainColor);
            materials[i].SetColor("_EmissionColor", emitColor * currentMaterialSettings._materialsSettings[i]._intensity);
            materials[i].SetColor("_SpecColor", specColor);
        }
    }
Beispiel #5
0
    void FromTappedState()
    {
        _touchTime = 0;

        if (_defaultEffect && _tappedEffect && _lastEffect)
        {
            SetNewMaterialColor(_defaultColor);
            _defaultEffect.SetActive(true);

            StartCoroutine(SwitchOnOuterEffect(_defaultOuterEffect));
            StartCoroutine(SwitchOffOuterEffect(_defaultOuterEffect));

            _tappedEffect.SetActive(false);
            _lastEffect      = _defaultEffect;
            _lastOuterEffect = _defaultOuterEffect;
            _lastColor       = _defaultColor;
            _playerStateManager.currentPlayerColor = _defaultColor;
        }
        CheckPerfectTap();
    }
Beispiel #6
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);
    }