fixed float parse bug

made float parsing cultural invariant (caused some problems in non english languages)
This commit is contained in:
Ganesh Saraswat
2023-09-02 21:42:06 -06:00
parent ddd8332717
commit e4fc681ff4
2 changed files with 6 additions and 2 deletions

View File

@@ -202,6 +202,8 @@ public class PipeServer : MonoBehaviour
private void Start()
{
System.Globalization.CultureInfo.DefaultThreadCurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
body = new Body(lParent,landmarkPrefab,linePrefab,landmarkScale,enableHead?headPrefab:null);
Thread t = new Thread(new ThreadStart(Run));
@@ -233,6 +235,8 @@ public class PipeServer : MonoBehaviour
void Run()
{
System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
// Open the named pipe.
server = new NamedPipeServerStream("UnityMediaPipeBody",PipeDirection.InOut, 99, PipeTransmissionMode.Message);
@@ -240,7 +244,7 @@ public class PipeServer : MonoBehaviour
server.WaitForConnection();
print("Connected.");
var br = new BinaryReader(server);
var br = new BinaryReader(server, Encoding.UTF8);
while (true)
{

View File

@@ -106,7 +106,7 @@ class BodyThread(threading.Thread):
for i in range(0,33):
self.data += "{}|{}|{}|{}\n".format(i,hand_world_landmarks.landmark[i].x,hand_world_landmarks.landmark[i].y,hand_world_landmarks.landmark[i].z)
s = self.data.encode('ascii')
s = self.data.encode('utf-8')
try:
self.pipe.write(struct.pack('I', len(s)) + s)
self.pipe.seek(0)