Untitled
unknown
csharp
2 months ago
2.4 kB
5
Indexable
using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using NativeWebSocket; public class WebSocketHandler : MonoBehaviour { WebSocket websocket; [SerializeField] private Camera playerCam; [SerializeField] private IP_Drone_Inputs input; private enum lookDir { down, up, forward, } private lookDir lookingDir; private bool isDriving; // Start is called before the first frame update async void Start() { websocket = new WebSocket("ws://dronepi:8085/"); websocket.OnOpen += () => { websocket.SendText("PWS DRONE?"); Debug.Log("Connection open!"); }; websocket.OnError += (e) => { Debug.Log("Error! " + e); }; websocket.OnClose += (e) => { Debug.Log("Connection closed!"); }; websocket.OnMessage += (bytes) => { var message = System.Text.Encoding.UTF8.GetString(bytes); Debug.Log("Received Message from Websocket: " + message); }; // Keep sending messages at every 0.3s InvokeRepeating("SendWebSocketMessage", 0.0f, 0.3f); // waiting for messages await websocket.Connect(); } void Update() { #if !UNITY_WEBGL || UNITY_EDITOR websocket.DispatchMessageQueue(); #endif } async void SendWebSocketMessage() { if (playerCam.transform.rotation.x > 0) { lookingDir = lookDir.down; } else if (playerCam.transform.rotation.x == 0) { lookingDir = lookDir.forward; } else { lookingDir = lookDir.up; } if (input.Throttle > 0f) { isDriving = true; } else { isDriving = false; } Debug.Log("Rotation: " + playerCam.transform.rotation.y + " Driving: " + isDriving + " Looking: " + lookingDir); if (websocket.State == WebSocketState.Open) { await websocket.SendText("Rotation: " + playerCam.transform.rotation.y + " Driving: " + isDriving + " Looking: " + lookingDir); } } private async void OnApplicationQuit() { await websocket.Close(); } }
Editor is loading...
Leave a Comment