Пример #1
0
		private void InitializedObject(INetworkBehavior behavior, NetworkObject obj)
		{
			if (objectInitialized != null)
				objectInitialized(behavior, obj);

			obj.pendingInitialized -= InitializedObject;
		}
Пример #2
0
        private void FinalizeInitialization(GameObject go, INetworkBehavior netBehavior, NetworkObject obj, Vector3?position = null, Quaternion?rotation = null, bool sendTransform = true, bool skipOthers = false)
        {
            if (Networker is IServer)
            {
                InitializedObject(netBehavior, obj);
            }
            else
            {
                obj.pendingInitialized += InitializedObject;
            }

            if (position != null)
            {
                if (rotation != null)
                {
                    go.transform.position = position.Value;
                    go.transform.rotation = rotation.Value;
                }
                else
                {
                    go.transform.position = position.Value;
                }
            }

            //if (sendTransform)
            // obj.SendRpc(NetworkBehavior.RPC_SETUP_TRANSFORM, Receivers.AllBuffered, go.transform.position, go.transform.rotation);

            if (!skipOthers)
            {
                // Go through all associated network behaviors in the hierarchy (including self) and
                // Assign their TempAttachCode for lookup later. Should use an incrementor or something
                ProcessOthers(go.transform, obj, 1, (NetworkBehavior)netBehavior);
            }
        }
Пример #3
0
    /// <summary>
    /// Called whenever a new object is being initialized on the network
    /// </summary>
    /// <param name="behavior">The behavior for the object that is initialized</param>
    /// <param name="obj">The network object that is being initialized</param>
    private void ObjectInitialized(INetworkBehavior behavior, NetworkObject obj)
    {
        if (!(obj is NetworkCameraNetworkObject))
        {
            return;
        }

        // Since the camera represents the player, if one is being created
        // we need to increment the player count for the display. NOTE:
        playerCount++;

        // When this object is destroyed we need to decrement the player count as the camera
        // represents the player
        obj.onDestroy += (sender) =>
        {
            playerCount--;
        };

        if (NetworkManager.Instance.Networker is IServer)
        {
            obj.Owner.disconnected += (sender) => { obj.Destroy(); }
        }
        ;

        netCam = obj as NetworkCameraNetworkObject;
    }
Пример #4
0
        protected virtual void FinalizeInitialization(GameObject go, INetworkBehavior netBehavior, NetworkObject obj, Vector3?position = null, Quaternion?rotation = null, bool sendTransform = true, bool skipOthers = false)
        {
            if (Networker is IServer)
            {
                InitializedObject(netBehavior, obj);
            }
            else
            {
                obj.pendingInitialized += InitializedObject;
            }

            if (position != null)
            {
                if (rotation != null)
                {
                    go.transform.position = position.Value;
                    go.transform.rotation = rotation.Value;
                }
                else
                {
                    go.transform.position = position.Value;
                }
            }

            if (!skipOthers)
            {
                // Go through all associated network behaviors in the hierarchy (including self) and
                // Assign their TempAttachCode for lookup later. Should use an incrementor or something
                uint idOffset = 1;
                ProcessOthers(go.transform, obj, ref idOffset, (NetworkBehavior)netBehavior);
            }

            go.SetActive(true);
        }
Пример #5
0
 private void Instance_objectInitialized(INetworkBehavior unityGameObject, NetworkObject obj)
 {
     BMSLogger.Instance.Log("Instanciado:" + (unityGameObject as GameLobby).networkObject.NetworkId);
     if (unityGameObject is GameLobby)
     {
         users.Add(unityGameObject as GameLobby);
     }
 }
Пример #6
0
        protected virtual void InitializedObject(INetworkBehavior behavior, NetworkObject obj)
        {
            if (objectInitialized != null)
            {
                objectInitialized(behavior, obj);
            }

            obj.pendingInitialized -= InitializedObject;
        }
        protected virtual void InitializedObject(INetworkBehavior pBehavior, NetworkObject pObj)
        {
            if (OnObjectInitialized != null)
            {
                OnObjectInitialized(pBehavior, pObj);
            }

            pObj.pendingInitialized -= InitializedObject;
        }
Пример #8
0
 /// <summary>
 /// Called whenever a new object is being initialized on the network
 /// </summary>
 /// <param name="behavior">The behavior for the object that is initialized</param>
 /// <param name="obj">The network object that is being initialized</param>
 private void ObjectInitialized(INetworkBehavior behavior, NetworkObject obj)
 {
     if (obj is PlayerCharacterNetworkObject)
     {
         var player_char = behavior as PlayerCharacter;
         _Players.Add(player_char);
         player_char.OnDeath += Player_char_OnDeath;
     }
 }
Пример #9
0
    private void cleanupNetworkObjects(NetWorker owner, NetworkingPlayer player = null, List <System.Type> specificBehaviors = null)
    {
        if (NetworkManager.Instance == null)
        {
            return;
        }

        toDelete.Clear();
        MainThreadManager.Run(() =>
        {
            foreach (var no in owner.NetworkObjectList)
            {
                if (no == null)
                {
                    continue;
                }

                if (player != null && no.Owner != player)
                {
                    continue;
                }

                //delete specific stuff
                if (specificBehaviors != null)
                {
                    INetworkBehavior behav = no.AttachedBehavior;

                    System.Type tempType = behav.GetType();
                    if (specificBehaviors.Contains(behav.GetType()))
                    {
                        toDelete.Add(no);
                    }
                }
                else
                {
                    toDelete.Add(no);
                }
            }

            if (toDelete.Count > 0)
            {
                for (int i = toDelete.Count - 1; i >= 0; i--)
                {
                    owner.NetworkObjectList.Remove(toDelete[i]);
                    toDelete[i].Destroy();
                }
            }
        });
    }
    private void ObjectInitialized(INetworkBehavior behaviour, NetworkObject obj)
    {
        //! Ignore if it's not players being initialized
        if (!(obj is PlayerNetworkObject))
        {
            return;
        }

        //! When the host is disconnected, destroy the client's players as well
        if (NetworkManager.Instance.Networker.IsServer)
        {
            obj.Owner.disconnected += (sender) => { obj.Destroy(); }
        }
        ;
    }
        public virtual void SetIRPCSerializable(INetworkBehavior pNetworkBehavior, IRPCSerializable pBehaviorData)
        {
            if (pNetworkBehavior == null || pBehaviorData == null)
            {
                return;
            }

            IRPCSerializable rpcSerializable = pNetworkBehavior as IRPCSerializable;

            if (rpcSerializable == null)
            {
                return;
            }

            rpcSerializable.FromByteArray(pBehaviorData.ToByteArray());
        }
Пример #12
0
    public NetworkObject NetworkCreateObject(int pIdentity, NetWorker pNetworker, INetworkBehavior pNetworkBehavior, int pCreateCode, byte[] pMetadata)
    {
        Func <NetWorker, INetworkBehavior, int, byte[], NetworkObject> factoryFunc;
        bool success = false;

        lock (_lockerConstructor2) {
            success = _registeredNetworkObjectConstructors2.TryGetValue(pIdentity, out factoryFunc);
        }

        if (success)
        {
            return(factoryFunc(pNetworker, pNetworkBehavior, pCreateCode, pMetadata));
        }

        return(default(NetworkObject));
    }
Пример #13
0
    private void ObjectInitialized(INetworkBehavior behavior, NetworkObject obj)
    {
        if (!(obj is PlayerNetworkObject))
        {
            return;
        }

        if (NetworkManager.Instance.Networker is IServer)
        {
            //Bind destroy cross network
            Debug.Log($"Player object initalised for user {obj.Owner.NetworkId}");
            obj.Owner.disconnected += (sender) =>
            {
                obj.Destroy();
                Debug.Log($"Player object destroyed for user {obj.Owner.NetworkId}");
            };
        }
    }
        protected virtual void MoveObjectToScene(INetworkBehavior pUnityGameObject, NetworkObject pObj)
        {
            NetworkBehavior behavior = pUnityGameObject as NetworkBehavior;

            if (behavior == null)
            {
                return;
            }

            MainThreadManager.Run(() => {
                if (behavior == null || gameObject == null)
                {
                    return;
                }

                SceneManager.MoveGameObjectToScene(behavior.gameObject, gameObject.scene);
            });
        }
    private void ObjectInitialized(INetworkBehavior behavior, NetworkObject obj)
    {
        if (!(obj is PlayerNetworkObject))
        {
            return;
        }

        PlayerCount++;

        obj.onDestroy += (sender) =>
        {
            PlayerCount--;
        };

        if (NetworkManager.Instance.Networker is IServer)
        {
            obj.Owner.disconnected += (sender) => { obj.Destroy(); }
        }
        ;
    }
        public virtual void SetINetworkSceneObject(INetworkBehavior pNetworkBehavior, NetworkObject pNetworkObject = null)
        {
            if (pNetworkBehavior == null)
            {
                return;
            }

            INetworkSceneObject nObj = pNetworkBehavior as INetworkSceneObject;

            if (nObj == null)
            {
                return;
            }

            nObj.Manager = this;
            if (pNetworkObject != null)
            {
                nObj.SetNetworkObject(pNetworkObject);
            }
        }
        protected virtual void FinalizeInitialization(GameObject pGo, INetworkBehavior pNetBehavior, NetworkObject pObj, Vector3?pPosition = null, Quaternion?pRotation = null, bool pSendTransform = true, bool pSkipOthers = false)
        {
            if (IsServer)
            {
                InitializedObject(pNetBehavior, pObj);
            }
            else
            {
                pObj.pendingInitialized += InitializedObject;
            }

            if (pPosition != null)
            {
                if (pRotation != null)
                {
                    pGo.transform.position = pPosition.Value;
                    pGo.transform.rotation = pRotation.Value;
                }
                else
                {
                    pGo.transform.position = pPosition.Value;
                }
            }

            //testvariables : test this function and comment it in if applicable
            //if (sendTransform)
            // obj.SendRpc(NetworkBehavior.RPC_SETUP_TRANSFORM, Receivers.AllBuffered, go.transform.position, go.transform.rotation);

            if (!pSkipOthers)
            {
                // Go through all associated network behaviors in the hierarchy (including self) and
                // Assign their TempAttachCode for lookup later. Should use an incrementor or something
                uint idOffset = 1;
                ProcessOthers(pGo.transform, pObj, ref idOffset, (NetworkBehavior)pNetBehavior);
            }
        }
 public ExampleProximityPlayerNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
 public InputListenerNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
Пример #20
0
 public ZfGuideGameLogicNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
Пример #21
0
 public PlayerControllerNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
Пример #22
0
 public CubeForgeGameNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0) : base(networker, networkBehavior, createCode)
 {
     Initialize();
 }
 public NetworkAudioLowPassFilterNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
Пример #24
0
 public ChatManagerNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0) : base(networker, networkBehavior, createCode)
 {
     Initialize();
 }
Пример #25
0
 public SimplePictureNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
 public GameUINetworkEntityNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
Пример #27
0
 public ECSNetworkObject(NetWorker pNetworker, INetworkBehavior pNetworkBehavior = null, int pCreateCode = 0, byte[] pMetadata = null) : base(pNetworker, pNetworkBehavior, pCreateCode, pMetadata)
 {
     Initialize();
 }
Пример #28
0
 public CubeCustomMoveNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
 public WhaleburtNetworkNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }
Пример #30
0
 public GuyWithMovementNetworkObject(NetWorker networker, INetworkBehavior networkBehavior = null, int createCode = 0, byte[] metadata = null) : base(networker, networkBehavior, createCode, metadata)
 {
     Initialize();
 }