CSNC script

This commit is contained in:
APEX FIGHT 2025-01-02 16:21:58 -05:00
parent ec734b6f1e
commit 988f39144d
2 changed files with 110 additions and 0 deletions

99
Client/Unity/CSNC.cs Normal file
View File

@ -0,0 +1,99 @@
using Newtonsoft.Json;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
public class CSNC : MonoBehaviour
{
public string ip;
private class EZtransform //ez consistent serialization of transforms
{
public List<float> position;
public List<float> rotation;
public EZtransform(Transform transform)
{
position = new List<float>(3);
rotation = new List<float>(4);
position.Add(transform.position.x);
position.Add(transform.position.y);
position.Add(transform.position.z);
rotation.Add(transform.rotation.x);
rotation.Add(transform.rotation.y);
rotation.Add(transform.rotation.z);
rotation.Add(transform.rotation.w);
}
}
private class CSNCObject
{
public string type;
public EZtransform transform;
public CSNCObject(string type, Transform trans)
{
this.type = type;
this.transform = new EZtransform(trans);
}
public CSNCObject(string type, EZtransform trans)
{
this.type = type;
this.transform = trans;
}
}
private class SendData
{
public string uuid;
public List<CSNCObject> gameObjects;
public SendData(List<CSNCObject> gameobjects)
{
uuid = GameObjectRegistry.instance.uuid;
gameObjects = gameobjects;
}
}
void Start()
{
ip = CHANGEME; //CHANGE THIS VALUE to the ip address
}
void FixedUpdate()
{
IEnumerator req = request();
StartCoroutine(req);
}
IEnumerator request()
{
//Debug.Log(GameObjectRegistry.instance.registeredObjects);
List<CSNCObject> gameObjects = new List<CSNCObject>();
foreach (SyncData obj in GameObjectRegistry.instance.registeredObjects)
{
gameObjects.Add(new CSNCObject(obj.type, obj.transform));
}
SendData sendData = new SendData(gameObjects);
//Debug.Log(JsonConvert.SerializeObject(sendData));
using (UnityWebRequest req = UnityWebRequest.Post(ip, JsonConvert.SerializeObject(sendData), "application/json"))
{
req.SetRequestHeader("request-type", "csnc");
yield return req.SendWebRequest();
if (req.result != UnityWebRequest.Result.Success)
{
Debug.LogError(req.error);
}
else
{
Debug.Log(req.downloadHandler.text);
}
}
}
}

11
Client/Unity/CSNC.cs.meta Normal file
View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 6772f36d5b93fd5498e8f3f1d8155ff2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: