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()); } }