private void SetParticleNumber(int num) { if (transform.childCount != 0) { if (num > transform.childCount) { Transform tempOriginal = transform.GetChild(0); var skin = GetComponent <SkinManager>(); for (int i = transform.childCount; i < num; i++) { var temp = Instantiate(tempOriginal, transform); temp.name = tempOriginal.name; var temp2 = new SkinManager.ImageInfo(temp.GetComponent <SpriteRenderer>(), skin[0].OriginalImage, skin[0].CurrentColor); temp2.ReplaceColorOfSprites(skin[0].CurrentColor); skin.AddRenderer(temp2); } } else { var skin = GetComponent <SkinManager>(); for (int i = transform.childCount - 1; i >= num; i--) { skin.RemoveRenderer(transform.GetChild(i).GetComponent <SpriteRenderer>()); Destroy(transform.GetChild(i).gameObject); } } } else { Transform tempOriginal = Resources.Load <Transform>("Prefabs/" + BuildPathToWeapon <OrbitAttack>()).transform.GetChild(0); var skin = GetComponent <SkinManager>(); for (int i = 0; i < num; i++) { var temp = Instantiate(tempOriginal, transform); temp.name = tempOriginal.name; var temp2 = new SkinManager.ImageInfo(temp.GetComponent <SpriteRenderer>(), skin[0].OriginalImage, skin[0].CurrentColor); temp2.ReplaceColorOfSprites(skin[0].CurrentColor); skin.AddRenderer(temp2); } } }
private void LateUpdate() { transform.localPosition = new Vector3(Random.value * Size, 0f); while ((_activeBullets + 1) * Size > _machineGun.CurrentReach && _activeBullets > 0) { _bullets[--_activeBullets].gameObject.SetActive(false); } while (_activeBullets * Size < _machineGun.CurrentReach - Size) { if (_activeBullets >= _bullets.Count) { var temp = Instantiate(_bullets[0], transform); _bullets.Add(temp); var temp2 = new SkinManager.ImageInfo(temp.GetComponent <SpriteRenderer>(), _skin[0].OriginalImage, _skin[0].CurrentColor); temp2.ReplaceColorOfSprites(_skin[0].CurrentColor); _skin.AddRenderer(temp2); _bullets[_activeBullets].localPosition = (_activeBullets + 1) * Size * Vector3.right; } _bullets[_activeBullets++].gameObject.SetActive(true); } enabled = _machineGun.enabled; }