mirror of
https://github.com/MirrorNetworking/Mirror.git
synced 2024-11-18 11:00:32 +00:00
OnStartServer isServer check + initialization moved to NetworkServer for cleaner code
This commit is contained in:
parent
d79de6bf0c
commit
f2b0f2bab2
@ -635,13 +635,6 @@ void OnDestroy()
|
|||||||
|
|
||||||
internal void OnStartServer()
|
internal void OnStartServer()
|
||||||
{
|
{
|
||||||
// do nothing if already spawned
|
|
||||||
if (isServer)
|
|
||||||
return;
|
|
||||||
|
|
||||||
// set isServer flag
|
|
||||||
isServer = true;
|
|
||||||
|
|
||||||
// set isLocalPlayer earlier, in case OnStartLocalplayer is called
|
// set isLocalPlayer earlier, in case OnStartLocalplayer is called
|
||||||
// AFTER OnStartClient, in which case it would still be falsse here.
|
// AFTER OnStartClient, in which case it would still be falsse here.
|
||||||
// many projects will check isLocalPlayer in OnStartClient though.
|
// many projects will check isLocalPlayer in OnStartClient though.
|
||||||
|
@ -1182,7 +1182,16 @@ static void SpawnObject(GameObject obj, NetworkConnection ownerConnection)
|
|||||||
if (ownerConnection is LocalConnectionToClient)
|
if (ownerConnection is LocalConnectionToClient)
|
||||||
identity.isOwned = true;
|
identity.isOwned = true;
|
||||||
|
|
||||||
identity.OnStartServer();
|
// only call OnStartServer if not spawned yet.
|
||||||
|
// check used to be in NetworkIdentity. may not be necessary anymore.
|
||||||
|
if (!identity.isServer)
|
||||||
|
{
|
||||||
|
// configure NetworkIdentity
|
||||||
|
identity.isServer = true;
|
||||||
|
|
||||||
|
// callback after all fields were set
|
||||||
|
identity.OnStartServer();
|
||||||
|
}
|
||||||
|
|
||||||
// Debug.Log($"SpawnObject instance ID {identity.netId} asset ID {identity.assetId}");
|
// Debug.Log($"SpawnObject instance ID {identity.netId} asset ID {identity.assetId}");
|
||||||
|
|
||||||
|
@ -108,9 +108,8 @@ public void IsServerOnly()
|
|||||||
{
|
{
|
||||||
CreateNetworked(out _, out NetworkIdentity identity, out EmptyBehaviour emptyBehaviour);
|
CreateNetworked(out _, out NetworkIdentity identity, out EmptyBehaviour emptyBehaviour);
|
||||||
|
|
||||||
// call OnStartServer so isServer is true
|
// set isServer
|
||||||
identity.OnStartServer();
|
identity.isServer = true;
|
||||||
Assert.That(identity.isServer, Is.True);
|
|
||||||
|
|
||||||
// isServerOnly should be true when isServer = true && isClient = false
|
// isServerOnly should be true when isServer = true && isClient = false
|
||||||
Assert.That(emptyBehaviour.isServer, Is.True);
|
Assert.That(emptyBehaviour.isServer, Is.True);
|
||||||
@ -558,9 +557,8 @@ public void GetSyncVarGameObjectOnServer()
|
|||||||
{
|
{
|
||||||
CreateNetworked(out GameObject gameObject, out NetworkIdentity identity, out NetworkBehaviourGetSyncVarGameObjectComponent comp);
|
CreateNetworked(out GameObject gameObject, out NetworkIdentity identity, out NetworkBehaviourGetSyncVarGameObjectComponent comp);
|
||||||
|
|
||||||
// call OnStartServer so isServer is true
|
// set isServer
|
||||||
identity.OnStartServer();
|
identity.isServer = true;
|
||||||
Assert.That(identity.isServer, Is.True);
|
|
||||||
|
|
||||||
// create a syncable GameObject
|
// create a syncable GameObject
|
||||||
CreateNetworked(out GameObject go, out NetworkIdentity ni);
|
CreateNetworked(out GameObject go, out NetworkIdentity ni);
|
||||||
@ -584,9 +582,8 @@ public void GetSyncVarGameObjectOnServerNull()
|
|||||||
{
|
{
|
||||||
CreateNetworked(out GameObject gameObject, out NetworkIdentity identity, out NetworkBehaviourGetSyncVarGameObjectComponent comp);
|
CreateNetworked(out GameObject gameObject, out NetworkIdentity identity, out NetworkBehaviourGetSyncVarGameObjectComponent comp);
|
||||||
|
|
||||||
// call OnStartServer and assign netId so isServer is true
|
// set isServer
|
||||||
identity.OnStartServer();
|
identity.isServer = true;
|
||||||
Assert.That(identity.isServer, Is.True);
|
|
||||||
|
|
||||||
// get it on the server. null should work fine.
|
// get it on the server. null should work fine.
|
||||||
GameObject result = comp.GetSyncVarGameObjectExposed();
|
GameObject result = comp.GetSyncVarGameObjectExposed();
|
||||||
@ -719,9 +716,8 @@ public void GetSyncVarNetworkIdentityOnServer()
|
|||||||
{
|
{
|
||||||
CreateNetworked(out GameObject _, out NetworkIdentity identity, out NetworkBehaviourGetSyncVarNetworkIdentityComponent comp);
|
CreateNetworked(out GameObject _, out NetworkIdentity identity, out NetworkBehaviourGetSyncVarNetworkIdentityComponent comp);
|
||||||
|
|
||||||
// call OnStartServer so isServer is true
|
// set isServer
|
||||||
identity.OnStartServer();
|
identity.isServer = true;
|
||||||
Assert.That(identity.isServer, Is.True);
|
|
||||||
|
|
||||||
// create a syncable GameObject
|
// create a syncable GameObject
|
||||||
CreateNetworked(out _, out NetworkIdentity ni);
|
CreateNetworked(out _, out NetworkIdentity ni);
|
||||||
@ -742,9 +738,8 @@ public void GetSyncVarNetworkIdentityOnServerNull()
|
|||||||
{
|
{
|
||||||
CreateNetworked(out GameObject _, out NetworkIdentity identity, out NetworkBehaviourGetSyncVarNetworkIdentityComponent comp);
|
CreateNetworked(out GameObject _, out NetworkIdentity identity, out NetworkBehaviourGetSyncVarNetworkIdentityComponent comp);
|
||||||
|
|
||||||
// call OnStartServer so isServer is true
|
// set isServer
|
||||||
identity.OnStartServer();
|
identity.isServer = true;
|
||||||
Assert.That(identity.isServer, Is.True);
|
|
||||||
|
|
||||||
// get it on the server. null should work fine.
|
// get it on the server. null should work fine.
|
||||||
NetworkIdentity result = comp.GetSyncVarNetworkIdentityExposed();
|
NetworkIdentity result = comp.GetSyncVarNetworkIdentityExposed();
|
||||||
|
@ -551,9 +551,8 @@ public void AssignAndRemoveClientAuthority()
|
|||||||
// server is needed
|
// server is needed
|
||||||
NetworkServer.Listen(1);
|
NetworkServer.Listen(1);
|
||||||
|
|
||||||
// call OnStartServer so that isServer is true
|
// set isServer to true
|
||||||
identity.OnStartServer();
|
identity.isServer = true;
|
||||||
Assert.That(identity.isServer, Is.True);
|
|
||||||
|
|
||||||
// assign authority
|
// assign authority
|
||||||
result = identity.AssignClientAuthority(owner);
|
result = identity.AssignClientAuthority(owner);
|
||||||
|
Loading…
Reference in New Issue
Block a user