- Home /
Spawning a projectile over the server in UNET
I'm currently making a top-down shooter, and I'm having trouble spawning a projectile (the bullet) over the server in Unity Multiplayer.
Right now, I have code working for the player spawning in over the server. Here's the code:
public class PlayerObj : Mirror.NetworkBehaviour
{
public float speed = 10;
private Rigidbody2D rb;
private Vector2 moveVelocity;
private Vector3 currentDirection = Vector3.zero;
public GameObject PlayerPrefab;
public Camera myCam;
void Start()
{
if (isLocalPlayer)
{
CmdSpawnPlayer();
}
}
GameObject myPlayer;
[Mirror.Command]
public void CmdSpawnPlayer()
{
GameObject playerObj = Instantiate(PlayerPrefab);
myPlayer = playerObj;
Mirror.NetworkServer.SpawnWithClientAuthority(playerObj, connectionToClient);
}
}
My player is a prefab, and the player prefab has the weapon attached to it as a child. The weapon object has a script attached to it that shoots the bullets:
public class Weapon : MonoBehaviour
{
public float offset;
public GameObject projectile;
public Transform shotPoint;
private float timeBtwShots;
public float startTimeBtwShots;
private SpriteRenderer mySpriteRenderer;
void Start()
{
mySpriteRenderer = GetComponent<SpriteRenderer>();
}
private void FixedUpdate()
{
Vector3 difference = Camera.main.ScreenToWorldPoint(Input.mousePosition) - transform.position;
float rotZ = Mathf.Atan2(difference.y, difference.x) * Mathf.Rad2Deg;
gameObject.transform.parent.gameObject.transform.rotation = Quaternion.Euler(0f, 0f, rotZ + offset);
float x = Input.mousePosition.x;
if (timeBtwShots <= 0)
{
if (Input.GetMouseButtonDown(0))
{
gameObject.GetComponent<BulletObj>();
Instantiate(projectile, shotPoint.position, transform.rotation);
timeBtwShots = startTimeBtwShots;
}
}
else
{
timeBtwShots -= Time.deltaTime;
}
}
}
The bullets show up on the shooter's screen, but it doesn't show up on the other player's screen. How do I make it to where the bullets show up on everyone's screen?
Thank you very much for any and all help!
Your answer
Follow this Question
Related Questions
Unity networking tutorial? 6 Answers
How can I check if a particular IP is a server? 1 Answer
Spawning objects in multiplayer game 1 Answer
UNET: Host freezes when more than 6 players are connected. 1 Answer
Multiplayer updates are really slow 0 Answers