void Start() { _playerStateManager.currentObstacleType = TraceSettings.ObstacleType.None; _coloringManager = GetComponent <ColoringManager>(); SetPlayerEffects(); SetNewMaterialColor(_defaultColor); _lastEffect = _defaultEffect; _lastOuterEffect = _defaultOuterEffect; _lastColor = _defaultColor; }
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); }
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); } }
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(); }
//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); }