Untitled
unknown
csharp
8 months ago
2.4 kB
6
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