/// <summary> /// Set the sprite for a given object /// </summary> /// <param name="bullet"></param> /// <param name="bankEntry"></param> /// <param name="bulletGameObject"></param> /// <returns></returns> public BulletScript SetBulletSettings(BulletObject bullet, BulletBankEntry bankEntry, GameObject bulletGameObject) { // Change sprite if the field has been filled if (bankEntry.sprite != null) { SpriteRenderer spriteRenderer = bulletGameObject.GetComponentInChildren <SpriteRenderer>(); if (spriteRenderer != null) { spriteRenderer.sprite = bankEntry.sprite; } } // Make sure we have the appropriate script BulletScript bulletScript = bulletGameObject.GetComponent <BulletScript>(); if (bulletScript == null) { bulletScript = bulletGameObject.AddComponent <BulletScript>(); } bulletScript.DestroyWhenOutOfScreen = bankEntry.DestroyWhenOutOfScreen; // Auto destruction if (bankEntry.TimeToLiveInSeconds > 0) { StartCoroutine(DestroyAfterTimeOut(bullet, bankEntry.TimeToLiveInSeconds)); } return(bulletScript); }
/// <summary> /// Bullet spawn. Intantiate appropriate prefab. /// </summary> /// <param name="bullet"></param> /// <param name="bulletName"></param> void BulletSpawnedHandler(BulletObject bullet, string bulletName) { BulletScript bulletScript = null; if (OnBulletSpawned != null) { bulletScript = OnBulletSpawned(bullet, bulletName); } else { bulletScript = CreateBulletFromBank(bullet, bulletName); } // Bullet properties bulletScript.Bullet = bullet; bulletScript.Bullet.Scale = scale; bulletScript.Bullet.TimeSpeed = timeSpeed; }