Added AddComponentMenu empties and namespace

This commit is contained in:
Chris Langsenkamp 2019-11-24 14:35:19 -05:00
parent 37e5b49f28
commit fad50818bf
2 changed files with 32 additions and 27 deletions

View File

@ -4,6 +4,7 @@
namespace Mirror.Examples.Additive
{
[AddComponentMenu("")]
public class AdditiveNetworkManager : NetworkManager
{
[Scene]

View File

@ -1,37 +1,41 @@
using UnityEngine;
using Mirror;
// Custom NetworkManager that simply assigns the correct racket positions when
// spawning players. The built in RoundRobin spawn method wouldn't work after
// someone reconnects (both players would be on the same side).
public class NetworkManagerPong : NetworkManager
namespace Mirror.Examples.Pong
{
public Transform leftRacketSpawn;
public Transform rightRacketSpawn;
GameObject ball;
public override void OnServerAddPlayer(NetworkConnection conn)
// Custom NetworkManager that simply assigns the correct racket positions when
// spawning players. The built in RoundRobin spawn method wouldn't work after
// someone reconnects (both players would be on the same side).
[AddComponentMenu("")]
public class NetworkManagerPong : NetworkManager
{
// add player at correct spawn position
Transform start = numPlayers == 0 ? leftRacketSpawn : rightRacketSpawn;
GameObject player = Instantiate(playerPrefab, start.position, start.rotation);
NetworkServer.AddPlayerForConnection(conn, player);
public Transform leftRacketSpawn;
public Transform rightRacketSpawn;
GameObject ball;
// spawn ball if two players
if (numPlayers == 2)
public override void OnServerAddPlayer(NetworkConnection conn)
{
ball = Instantiate(spawnPrefabs.Find(prefab => prefab.name == "Ball"));
NetworkServer.Spawn(ball);
// add player at correct spawn position
Transform start = numPlayers == 0 ? leftRacketSpawn : rightRacketSpawn;
GameObject player = Instantiate(playerPrefab, start.position, start.rotation);
NetworkServer.AddPlayerForConnection(conn, player);
// spawn ball if two players
if (numPlayers == 2)
{
ball = Instantiate(spawnPrefabs.Find(prefab => prefab.name == "Ball"));
NetworkServer.Spawn(ball);
}
}
public override void OnServerDisconnect(NetworkConnection conn)
{
// destroy ball
if (ball != null)
NetworkServer.Destroy(ball);
// call base functionality (actually destroys the player)
base.OnServerDisconnect(conn);
}
}
public override void OnServerDisconnect(NetworkConnection conn)
{
// destroy ball
if (ball != null)
NetworkServer.Destroy(ball);
// call base functionality (actually destroys the player)
base.OnServerDisconnect(conn);
}
}