protected virtual void Awake() { foreach (var prefab in projectilePrefabs) { ClientScene.RegisterPrefab(prefab); } OnProjectileSpawned = new ProjectileSpawned(); OnProjectileRaycast = new ProjectileRaycast(); TriggerDown = false; }
private void CmdShoot(Vector3 shootPos, Quaternion rotation) { if (activeWeapon.GetComponent <PlayerWeapon>().projectileModel != null) { Projectile _projectile = Instantiate(activeWeapon.projectileModel, shootPos, rotation); _projectile.Initialize(activeWeapon.damage, gameObject.name, activeWeapon.projectileLifetime); _projectile.GetComponent <Rigidbody>().velocity = _projectile.transform.forward * activeWeapon.projectileSpeed * 100; NetworkServer.Spawn(_projectile.gameObject); } else { ProjectileRaycast _projectile = Instantiate(activeWeapon.projectileRaycast, shootPos, rotation); _projectile.Initialize(activeWeapon.damage, gameObject.name, shootPos, playerCamera.transform.forward, Mathf.Infinity, activeWeapon); _projectile.CastRaycast(); NetworkServer.Spawn(_projectile.gameObject); } }