private void EnableProjectilePlease(int index, Transform muzzlePosition) { Rigidbody rigidbody = projectiles[index].GetComponent <Rigidbody>(); GameObjectWeaponDamager gameObjectWeaponDamager = projectiles[index].GetComponent <GameObjectWeaponDamager>(); rigidbody.velocity = Vector3.zero; rigidbody.isKinematic = false; projectiles[index].transform.position = muzzlePosition.position; projectiles[index].transform.rotation = transform.rotation; projectiles[index].SetActive(true); gameObjectWeaponDamager.EnableProjectile(); rigidbody.AddForce(muzzlePosition.forward * gameObjectWeaponDamager.MovementSpeed, ForceMode.Impulse); //rigidbody.AddForce(weaponController.WeaponParts[0].muzzle.forward * gameObjectWeaponDamager.MovementSpeed, ForceMode.Impulse); }
private void CreatePooledProjectiles(GameObject _projectile, int numberOfProjectiles) { Transform _projectileTransform; if (!projectileHolder) { projectileHolder = new GameObject(string.Concat(gameObject.name, " ", weapon.name, "-Projectiles")).transform; } for (int i = 0; i < numberOfProjectiles; i++) { GameObject proj = Instantiate(_projectile, projectileHolder); GameObjectWeaponDamager projectile = proj.GetComponent <GameObjectWeaponDamager>(); _projectileTransform = proj.transform; projectiles[i] = proj; projectile.Damage = weapon.MaxDamage; projectile.Weapon = this.weapon; //projectile.impactPrefabs = this.impactPrefabs; proj.SetActive(false); } }