public void SetupWebSocket(string data) { //webSocketData= new WebSocketData(); //webSocketData = webSocketData.Deserealize(data); webSocketData = new WebSocketData(data); Send("On Message"); switch (webSocketData.Reason) { case "Movement": Debug.Log("Movement"); planets = GameObject.FindGameObjectsWithTag("Planet"); foreach (GameObject planet in planets) { if (webSocketData.ID == planet.GetComponent <MobController>().ID) { planet.transform.rotation = new Quaternion(webSocketData.RX, webSocketData.RY, webSocketData.RZ, planet.transform.rotation.w); planet.GetComponent <Rigidbody>().AddForce(new Vector3(webSocketData.X, webSocketData.Y, webSocketData.Z)); } } break; case "Generate": Debug.Log("Generate"); if (webSocketData.Mob == "Asteroid") { Instantiate(asteroid, new Vector3(webSocketData.X, webSocketData.Y, webSocketData.Z), Quaternion.identity); asteroid.GetComponent <MobController>().ID = webSocketData.ID; } else if (webSocketData.Mob == "Planet") { Instantiate(planet, new Vector3(webSocketData.X, webSocketData.Y, webSocketData.Z), Quaternion.identity); planet.GetComponent <MobController>().ID = webSocketData.ID; } break; case "Dead": Debug.Log("Dead"); foreach (GameObject planet in planets) { if (webSocketData.ID == planet.GetComponent <MobController>().ID) { Destroy(planet); } } break; default: break; } }
// Start is called before the first frame update void Start() { random = new System.Random(); webSocketData = new WebSocketData("Generate", Guid.NewGuid().ToString(), 0f, 0f, 0f, "Planet"); GameObject.Find("Web Socket Client").GetComponent <WebSocketClient>().Send(webSocketData.Serialize()); for (int i = 0; i < 50; i++) { webSocketData = new WebSocketData("Generate", Guid.NewGuid().ToString(), random.Next(-100, 100), random.Next(-100, 100), random.Next(-100, 100), "Asteroid"); GameObject.Find("Web Socket Client").GetComponent <WebSocketClient>().Send(webSocketData.Serialize()); Instantiate(asteroid, new Vector3(webSocketData.X, webSocketData.Y, webSocketData.Z), Quaternion.identity); } lives = 5; }
public WebSocketData(string json) { Debug.Log(json); WebSocketData data = JsonConvert.DeserializeObject <WebSocketData>(json); Debug.Log(data); Reason = data.Reason; ID = data.ID; X = data.X; Y = data.Y; Z = data.Z; RX = data.RX; RY = data.RY; RZ = data.RZ; Mob = data.Mob; }
private async Task HandleMessage(WebSocket socket, WebSocketData webSocketData) { switch (webSocketData.Result.MessageType) { case WebSocketMessageType.Text: await SendToAll(webSocketData); break; case WebSocketMessageType.Close: await HandleCloseMessage(socket); break; default: break; } }
// Update is called once per frame void Update() { //Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //RaycastHit hit; //if (Physics.Raycast(ray, out hit, 100)) //{ Vector2 lookPosition = Input.mousePosition; lookPosition.x = lookPosition.x - Screen.width / 2; lookPosition.y = lookPosition.y - Screen.height / 2; this.transform.LookAt(lookPosition); //} if (Input.GetButtonDown("Forward")) { objectRigidbody.AddForce(transform.forward * Input.GetAxis("Forward") * 20f); webSocketData = new WebSocketData("Movement", gameObject.GetComponent <MobController>().ID, transform.forward.x * Input.GetAxis("Forward") * 20f, transform.forward.y * Input.GetAxis("Forward") * 20f, transform.forward.z * Input.GetAxis("Forward") * 20f, transform.rotation.x, transform.rotation.y, transform.rotation.z); GameObject.Find("Web Socket Client").GetComponent <WebSocketClient>().Send(webSocketData.Serialize()); //Debug.Log(JsonUtility.ToJson(webSocketData)); } }