Example #1
0
        private void OnBubbleMessageReceived(BubbleMessageEventParameters parameters)
        {
            var id          = parameters.RequesterId;
            var sceneObject = SceneObjectsContainer.Instance.GetRemoteSceneObject(id);

            if (sceneObject != null)
            {
                var owner   = sceneObject.GetGameObject().transform;
                var message = parameters.Message;
                var time    = parameters.Time;
                BubbleMessageCreator.Create(owner, message, time);
            }
        }
        private void OnSubscriberAdded(ISceneObject sceneObject)
        {
            var peerIdGetter = sceneObject.Components.GetComponent <IPeerIdGetter>();

            if (peerIdGetter != null)
            {
                RaiseBubbleMessage();
            }

            void RaiseBubbleMessage()
            {
                var interestAreaNotifier = Entity.Components.GetComponent <IInterestAreaNotifier>().AssertNotNull();
                var parameters           = new BubbleMessageEventParameters(Entity.Id, message, time);

                interestAreaNotifier.NotifySubscriberOnly(peerIdGetter.GetId(), (byte)GameEvents.BubbleMessage, parameters, MessageSendOptions.DefaultReliable());
            }
        }