/* * Local method : ColorLerp - Private * Description : 1) */ private IEnumerator LerpColor(componentType type) { float elapsedTime = 0.0f; float totalTime = 0.8f; while (elapsedTime < totalTime) { elapsedTime += Time.deltaTime; switch (type) { case componentType.Material: Material material = GetComponent <Image>().material; Color32 startColor = Color32.Lerp(ColorManager.Instance.oldGradientStartColor, ColorManager.Instance.newGradientStartColor, (elapsedTime / totalTime)); Color32 endColor = Color32.Lerp(ColorManager.Instance.oldGradientEndColor, ColorManager.Instance.newGradientEndColor, (elapsedTime / totalTime)); material.SetColor("_StartColor", startColor); material.SetColor("_EndColor", endColor); break; case componentType.Particle: ParticleSystem particleSystem = GetComponent <ParticleSystem>(); ParticleSystem.MainModule mainModule = particleSystem.main; Color mainColorParticle = Color32.Lerp(ColorManager.Instance.oldMainColor, ColorManager.Instance.newMainColor, (elapsedTime / totalTime)); mainModule.startColor = mainColorParticle; break; case componentType.Sprite: SpriteRenderer spriteRenderer = GetComponent <SpriteRenderer>(); if (isCover) { Color32 coverColorSprite = Color32.Lerp(ColorManager.Instance.oldCoverColor, ColorManager.Instance.newCoverColor, (elapsedTime / totalTime)); spriteRenderer.color = coverColorSprite; } else { Color32 mainColorSprite = Color32.Lerp(ColorManager.Instance.oldMainColor, ColorManager.Instance.newMainColor, (elapsedTime / totalTime)); spriteRenderer.color = mainColorSprite; } break; case componentType.Image: Image image = GetComponent <Image>(); if (proSens) { bool isProActive = String.Equals(DataManager.Instance.pro, "faruk"); if (isProActive) { Color32 coverColorImage = Color32.Lerp(ColorManager.Instance.oldCoverColor, ColorManager.Instance.newCoverColor, (elapsedTime / totalTime)); image.color = coverColorImage; } else { Color32 mainColorImage = Color32.Lerp(ColorManager.Instance.oldMainColor, ColorManager.Instance.newMainColor, (elapsedTime / totalTime)); image.color = mainColorImage; } } else { Color32 mainColorImage = Color32.Lerp(ColorManager.Instance.oldMainColor, ColorManager.Instance.newMainColor, (elapsedTime / totalTime)); image.color = mainColorImage; } break; case componentType.Text: TextMeshProUGUI text = GetComponent <TextMeshProUGUI>(); Color32 mainColorText = Color32.Lerp(ColorManager.Instance.oldMainColor, ColorManager.Instance.newMainColor, (elapsedTime / totalTime)); text.color = mainColorText; break; case componentType.Trail: TrailRenderer trail = GetComponent <TrailRenderer>(); Color32 mainColorTrail = Color32.Lerp(ColorManager.Instance.oldMainColor, ColorManager.Instance.newMainColor, (elapsedTime / totalTime)); trail.startColor = mainColorTrail; trail.endColor = mainColorTrail; break; default: break; } yield return(null); } }
/* * Local method : ColorLerp - Private * Description : 1) */ private void InstantColor(componentType type, bool isDefault) { switch (type) { case componentType.Material: Material material = GetComponent <Image>().material; if (isDefault) { material.SetColor("_StartColor", ColorManager.Instance.oldGradientStartColor); material.SetColor("_EndColor", ColorManager.Instance.oldGradientEndColor); } else { material.SetColor("_StartColor", ColorManager.Instance.newGradientStartColor); material.SetColor("_EndColor", ColorManager.Instance.newGradientEndColor); } break; case componentType.Particle: ParticleSystem particleSystem = GetComponent <ParticleSystem>(); ParticleSystem.MainModule mainModule = particleSystem.main; if (isDefault) { mainModule.startColor = (Color)ColorManager.Instance.oldMainColor; } else { mainModule.startColor = (Color)ColorManager.Instance.newMainColor; } break; case componentType.Sprite: SpriteRenderer spriteRenderer = GetComponent <SpriteRenderer>(); if (isCover) { if (isDefault) { spriteRenderer.color = ColorManager.Instance.oldCoverColor; } else { spriteRenderer.color = ColorManager.Instance.newCoverColor; } } else { if (isDefault) { spriteRenderer.color = ColorManager.Instance.oldMainColor; } else { spriteRenderer.color = ColorManager.Instance.newMainColor; } } break; case componentType.Image: Image image = GetComponent <Image>(); if (isCover) { if (isDefault) { image.color = ColorManager.Instance.oldCoverColor; } else { image.color = ColorManager.Instance.newCoverColor; } } else { if (proSens) { bool isProActive = String.Equals(DataManager.Instance.pro, "faruk"); if (isProActive) { if (isDefault) { image.color = ColorManager.Instance.oldCoverColor; } else { image.color = ColorManager.Instance.newCoverColor; } } else { if (isDefault) { image.color = ColorManager.Instance.oldMainColor; } else { image.color = ColorManager.Instance.newMainColor; } } } else { if (isDefault) { image.color = ColorManager.Instance.oldMainColor; } else { image.color = ColorManager.Instance.newMainColor; } } } break; case componentType.Text: TextMeshProUGUI text = GetComponent <TextMeshProUGUI>(); if (isDefault) { text.color = ColorManager.Instance.oldMainColor; } else { text.color = ColorManager.Instance.newMainColor; } break; case componentType.Trail: TrailRenderer trail = GetComponent <TrailRenderer>(); if (isDefault) { trail.startColor = ColorManager.Instance.oldMainColor; trail.endColor = ColorManager.Instance.oldMainColor; } else { trail.startColor = ColorManager.Instance.newMainColor; trail.endColor = ColorManager.Instance.newMainColor; } break; default: break; } }
// Use this for initialization void Awake() { gameCamera = GameObject.Find("Main Camera").GetComponent <Camera>(); ship = new Ship(shipType, maxHealth, shipSpeed); ship.dodgeSpeed = dodgeSpeed; ship.dodgeLength = dodgeLength; ship.weapons [0] = Weapon.createBasicEnemyWeapon(); ship.isComponent = isComponent; ship.componentType = componentType; //instantiate weapons based on ship type switch (shipType) { case shipType.fighter: break; case shipType.frigate: ship.weapons [0] = Weapon.createFrigateSpreadWeapon(); break; } if (componentCount > 0) { //spawn in components string resourcePath = ""; switch (shipType) { case shipType.frigate: resourcePath = "frigate_components/"; break; } //right now we only support 2 components per ship - 1 left and 1 right var values = componentType.GetValues(typeof(componentType)); componentType left = (componentType)values.GetValue(Random.Range(0, values.Length)); componentType right = (componentType)values.GetValue(Random.Range(0, values.Length)); //totally janky Object LeftComponent = Resources.Load(resourcePath + "left_" + left.ToString()); components.Add(LeftComponent); Object RightComponent = Resources.Load(resourcePath + "right_" + right.ToString()); components.Add(RightComponent); foreach (Object component in components) { //initialize component properties GameObject newComponent = Instantiate(component) as GameObject; newComponent.GetComponent <EnemyFighterAI> ().isComponent = true; newComponent.transform.parent = this.transform; switch (newComponent.GetComponent <EnemyFighterAI> ().componentType) { case componentType.shield: shipType type = this.ship.shipType; Object shield = null; GameObject newShield = null; switch (type) { case shipType.frigate: shield = Resources.Load(resourcePath + "shield"); break; } newShield = Instantiate(shield) as GameObject; newShield.transform.parent = newComponent.transform; //set sheild and generator to both have null weapons newShield.GetComponent <EnemyFighterAI> ().ship.weapons = null; this.weapons = null; break; case componentType.missile: newComponent.GetComponent <EnemyFighterAI> ().ship.weapons [0] = Weapon.createBasicEnemymissile(); break; case componentType.rail: newComponent.GetComponent <EnemyFighterAI> ().ship.weapons [0] = Weapon.createBasicEnemyRail(); break; } //if its a right component change the weapon offset to be -x if (newComponent.name.Contains("left") && newComponent.GetComponent <EnemyFighterAI> ().ship.weapons.Length > 0) { foreach (Weapon weapon in newComponent.GetComponent <EnemyFighterAI> ().ship.weapons) { if (weapon != null) { foreach (FireStream firestream in weapon.fireStreams) { firestream.offset = new Vector3(-firestream.offset.x, firestream.offset.y); } } } } } } }