Exemple #1
0
        public void SetTrigger(int hash)
        {
            var animMsg = new AnimationTriggerMessage();

            animMsg.netId = netId;
            animMsg.hash  = hash;

            if (hasAuthority && localPlayerAuthority)
            {
                if (NetworkClient.allClients.Count > 0)
                {
                    var client = ClientScene.readyConnection;
                    if (client != null)
                    {
                        client.Send(MsgType.AnimationTrigger, animMsg);
                    }
                }
                return;
            }

            if (isServer && !localPlayerAuthority)
            {
                NetworkServer.SendToReady(gameObject, MsgType.AnimationTrigger, animMsg);
            }
        }
        /// <summary>
        ///   <para>Causes an animation trigger to be invoked for a networked object.</para>
        /// </summary>
        /// <param name="name">Name of trigger.</param>
        /// <param name="hash">Hash id of trigger (from the Animator).</param>
        /// <param name="triggerName"></param>
        public void SetTrigger(int hash)
        {
            AnimationTriggerMessage animationTriggerMessage = new AnimationTriggerMessage();

            animationTriggerMessage.netId = this.netId;
            animationTriggerMessage.hash  = hash;
            if (this.hasAuthority && this.localPlayerAuthority)
            {
                if (NetworkClient.allClients.Count <= 0)
                {
                    return;
                }
                NetworkConnection readyConnection = ClientScene.readyConnection;
                if (readyConnection == null)
                {
                    return;
                }
                readyConnection.Send((short)42, (MessageBase)animationTriggerMessage);
            }
            else
            {
                if (!this.isServer || this.localPlayerAuthority)
                {
                    return;
                }
                NetworkServer.SendToReady(this.gameObject, (short)42, (MessageBase)animationTriggerMessage);
            }
        }
        static internal void OnAnimationTriggerServerMessage(NetworkMessage netMsg)
        {
            AnimationTriggerMessage msg = new AnimationTriggerMessage();

            netMsg.ReadMessage(msg);
            if (LogFilter.logDev)
            {
                Debug.Log("OnAnimationTriggerMessage for netId=" + msg.netId + " conn=" + netMsg.conn);
            }

            GameObject go = NetworkServer.FindLocalObject(msg.netId);

            if (go == null)
            {
                return;
            }
            NetworkAnimator animSync = go.GetComponent <NetworkAnimator>();

            if (animSync != null)
            {
                animSync.HandleAnimTriggerMsg(msg.hash);

                NetworkServer.SendToReady(go, (short)MsgType.AnimationTrigger, msg);
            }
        }
Exemple #4
0
        public void SetTrigger(int hash)
        {
            AnimationTriggerMessage animationTriggerMessage = new AnimationTriggerMessage();

            animationTriggerMessage.netId = base.netId;
            animationTriggerMessage.hash  = hash;
            if (base.hasAuthority && base.localPlayerAuthority)
            {
                if (NetworkClient.allClients.Count > 0)
                {
                    ClientScene.readyConnection?.Send(42, animationTriggerMessage);
                }
            }
            else if (base.isServer && !base.localPlayerAuthority)
            {
                NetworkServer.SendToReady(base.gameObject, 42, animationTriggerMessage);
            }
        }
        static internal void OnAnimationTriggerClientMessage(NetworkMessage netMsg)
        {
            AnimationTriggerMessage msg = new AnimationTriggerMessage();

            netMsg.ReadMessage(msg);

            GameObject go = ClientScene.FindLocalObject(msg.netId);

            if (go == null)
            {
                return;
            }
            var animSync = go.GetComponent <NetworkAnimator>();

            if (animSync != null)
            {
                animSync.HandleAnimTriggerMsg(msg.hash);
            }
        }
Exemple #6
0
        public void SetTrigger(int hash)
        {
            AnimationTriggerMessage msg = new AnimationTriggerMessage {
                netId = base.netId,
                hash  = hash
            };

            if (base.hasAuthority && base.localPlayerAuthority)
            {
                if (NetworkClient.allClients.Count > 0)
                {
                    NetworkConnection readyConnection = ClientScene.readyConnection;
                    if (readyConnection != null)
                    {
                        readyConnection.Send(0x2a, msg);
                    }
                }
            }
            else if (base.isServer && !base.localPlayerAuthority)
            {
                NetworkServer.SendToReady(base.gameObject, 0x2a, msg);
            }
        }