public void CollectAllRpcFuncs() { Assembly[] assemblies = System.AppDomain.CurrentDomain.GetAssemblies(); List <MethodInfo> methods = new List <MethodInfo>(); foreach (var assembly in assemblies) { var methodsinass = assembly.GetTypes().SelectMany(x => x.GetMethods()) .Where(y => y.GetCustomAttributes() .OfType <NGRPCMethod>().Any()).ToArray(); methods.AddRange(methodsinass); foreach (var method in methodsinass) { if (name2Method.ContainsKey(method.Name)) { NGLogger.LogError("Error happens when collecting RFC methods."); } else { name2Method.Add(method.Name, method); } } } }
private void OnDestroy() { if (Instance == this) { NGLogger.LogDebug("Socket is Closed."); Socket.Close(); } }
public void ResponseProcessor(ResponseOperationMessage rmsg) { switch (rmsg.MsgType) { case MessageType.CreateRoom: var crParams = rmsg.CrrParams; switch (crParams.ReturnValue) { case (uint)ResponseMessageInfo.CreateRoomSuccess: LocalPlayer = new NGPlayer(true, crParams.PeerId); NGEvent.OnCreatedRoom(); break; case (uint)ResponseMessageInfo.CreateRoomAlreadyExist: NGEvent.OnCreateRoomFailed(crParams.Message); break; } break; case MessageType.JoinRoom: var jrrParams = rmsg.JrrParams; switch (jrrParams.ReturnValue) { case (uint)ResponseMessageInfo.JoinRoomSuccess: NGLogger.LogDebug("JoinRoomSuccess responsee"); LocalPlayer = new NGPlayer(true, jrrParams.PeerId); NGEvent.OnJoinedRoom(); break; case (uint)ResponseMessageInfo.JoinRoomAlreadyInRoom: NGEvent.OnJoinRoomFailed(); break; case (uint)ResponseMessageInfo.JoinRoomFull: NGEvent.OnJoinRoomFailed(); break; default: NGLogger.LogError("The return value from JoinRoom or JoinOrCreateRoom" + jrrParams.ReturnValue + " cannot be identified."); break; } break; case MessageType.LeaveRoom: var lrParams = rmsg.LrrParams; switch (lrParams.ReturnValue) { case (uint)ResponseMessageInfo.LeaveRoomSuccess: NGEvent.OnLeftRoom(); break; } break; } }
public NGPlayer GetNGPlayer(uint peerid) { NGPlayer rv = null; if (!ID2OtherPlayers.TryGetValue(peerid, out rv)) { NGLogger.LogWarning("NGPlayer with ID" + peerid.ToString() + " cannot be found."); } return(rv); }
public void DeserializeViewComponent(NGViewStream stream) { if (IsSyncPosition) { NGLogger.LogInfo("position"); this.transform.position = (NGVector3)stream.Receive(); } if (IsSyncRotation) { NGLogger.LogInfo("IsSyncRotation"); this.transform.rotation = (NGQuaternion)stream.Receive(); } }
void Update() { // Touch notifications if (Input.touchCount > 0) { Touch touch = Input.GetTouch(0); if (touch.phase != TouchPhase.Began && touch.phase != TouchPhase.Moved && touch.phase != TouchPhase.Stationary) { SendOnClick(touch.position); } } else { if (Input.GetMouseButtonUp(0)) { NGLogger.LogDebug("on Click"); SendOnClick(Input.mousePosition); } } }
public override void OnConnected() { Status = SocketStatus.Connected; NGLogger.LogDebug("On connected"); }
private void ProcessRecieveData(byte[] data) { //NGLogger.LogInfo("Receive a message"); Stream stream = new MemoryStream(data); ReceiveMessage message = ReadMessage <ReceiveMessage>(stream); switch (message.ReceiveMsgType) { case ReceiveMessageType.ResponseSocketStatus: switch (message.RssMsg.SStatus) { case SocketStatus.Connected: NGNetwork.Status = SocketStatus.Connected; NGNetworkEvent.OnConnected(); break; } break; case ReceiveMessageType.ResponseOperation: ResponseOperationMessage rmsg = message.RoMsg; NGInterface.CurrentRoom().ResponseProcessor(rmsg); break; case ReceiveMessageType.Forward: ForwardMessage fmsg = message.FMsg; uint peerId = fmsg.PeerId; switch (fmsg.MsgType) { case MessageType.JoinRoom: var jrParams = fmsg.JrfParams; NGPlayer newplayer = new NGPlayer(false, peerId); NGInterface.CurrentRoom().AddPlayer(newplayer); NGEvent.OnOtherPlayerEnteredRoom(newplayer); break; case MessageType.JoinOrCreateRoom: var jocParams = fmsg.JocrfParams; NGPlayer player = new NGPlayer(false, peerId); NGInterface.CurrentRoom().AddPlayer(player); NGEvent.OnOtherPlayerEnteredRoom(player); break; case MessageType.LeaveRoom: var lParams = fmsg.LrfParams; NGLogger.LogDebug("LeaveRoom" + peerId); var leaveplayer = NGInterface.CurrentRoom().GetNGPlayer(peerId); NGEvent.OnOtherPlayerLeftRoom(leaveplayer); Destroy(leaveplayer.GO); NGInterface.CurrentRoom().RemovePlayer(peerId); break; case MessageType.Rpc: var rpcparams = fmsg.RfParams; NGAny[] objs = NGProtobufConverter <NGAny> .RepeatedField2Array(rpcparams.Parameters); NGRPC.ExcuteRPC(rpcparams.ViewID, rpcparams.MethodName, objs); break; case MessageType.Instantiation: var i = fmsg.IfParams; var ids = NGProtobufConverter <uint> .RepeatedField2Array(i.ViewIDs); NGInterface.CurrentRoom().Instantiate(peerId, false, ids, i.PrefabName, i.Position, i.Rotation); break; case MessageType.ViewSync: var viewsyncparams = fmsg.VsfParams; var viewParams = viewsyncparams.VsdParams; NGViewContainer container = new NGViewContainer(); container.DeserializeAll(viewParams); break; case MessageType.CustomEvent: var ceParams = fmsg.CeParams; NGEvent.OnCustomEvent(ceParams.EventID, NGProtobufConverter <NGAny> .RepeatedField2Array(ceParams.CustomData)); break; } break; } }
public override void OnJoinedRoom() { NGLogger.LogInfo("OnJoinedRoom"); SceneManager.LoadScene(LobbyMenu.CubeSceneName); }
public override void OnOtherPlayerLeftRoom(NGPlayer player) { NGLogger.LogInfo("OnOtherPlayerLeftRoom" + player.mPeerId); }
public override void OnLeftRoom() { NGLogger.LogInfo("onLeftroom"); }
void DrawLobbyMenu() { float rectwidth = 500f; float rectheight = 900f; Rect rect = new Rect(Screen.width / 2 - rectwidth / 2, Screen.height / 2 - 100f, rectwidth, rectheight); // Show a half-transparent box around the upcoming UI GUI.color = new Color(0f, 0f, 0f, 1f); GUI.Box(GUIUtils.ProcessRect(rect, 8f), ""); GUI.color = Color.white; float buttonwidth = rectwidth; float buttonheight = 80; GUILayoutOption[] buttonoptions = { GUILayout.Width(buttonwidth), GUILayout.Height(buttonheight) }; float textwidth = 270; float textheight = 60; GUILayoutOption[] textoptions = { GUILayout.Width(textwidth), GUILayout.Height(textheight) }; GUILayout.BeginArea(rect); { GUILayout.Space(20); GUILayout.BeginHorizontal(); GUILayout.Label("Room Name:"); mRoomName = GUILayout.TextField(mRoomName, textoptions); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); GUILayout.Label("Room Capacity:"); string roomcapacity = "10"; roomcapacity = GUILayout.TextField(roomcapacity, textoptions); GUILayout.EndHorizontal(); GUILayout.Space(30); if (!uint.TryParse(roomcapacity, out mRoomCapacity)) { NGLogger.LogError("The Room Capacity cannot be parsed to uint"); } if (GUILayout.Button("Join Or Create Room", buttonoptions)) { NGInterface.JoinOrCreateRoom(mRoomName, mRoomCapacity); } GUILayout.Space(5); if (GUILayout.Button("Create Room", buttonoptions)) { NGInterface.CreateRoom(mRoomName, mRoomCapacity); } GUILayout.Space(5); // GUILayout.BeginHorizontal(); // GUILayout.Space((rectwidth - buttonwidth) / 2); if (GUILayout.Button("Join Room", buttonoptions)) { NGInterface.JoinRoom(mRoomName); } //GUILayout.EndHorizontal(); GUI.backgroundColor = Color.white; if (!string.IsNullOrEmpty(mMessage)) { GUILayout.Label(mMessage); } } GUILayout.EndArea(); }
public virtual void OnJoinRoomFailed() { NGLogger.LogDebug("Join room failed "); }
public virtual void OnJoinedRoom() { NGLogger.LogDebug("On Joined Room. "); }
public virtual void OnGreateRoomFailed(string errmsg) { NGLogger.LogDebug("Create room failed " + errmsg); }