diff --git a/Unity/OpenSee.cs b/Unity/OpenSee.cs index 88323ed..ccfde9d 100644 --- a/Unity/OpenSee.cs +++ b/Unity/OpenSee.cs @@ -179,20 +179,26 @@ public class OpenSee : MonoBehaviour { } void Start () { - openSeeDataMap = new Dictionary(); + if (openSeeDataMap == null) + openSeeDataMap = new Dictionary(); buffer = new byte[65535]; - socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); - IPAddress ip; - IPAddress.TryParse(listenAddress, out ip); - socket.Bind(new IPEndPoint(ip, listenPort)); - socket.ReceiveTimeout = 15; + if (socket == null) { + socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); + IPAddress ip; + IPAddress.TryParse(listenAddress, out ip); + socket.Bind(new IPEndPoint(ip, listenPort)); + socket.ReceiveTimeout = 15; + } receiveThread = new Thread(() => performReception()); receiveThread.Start(); } void Update () { + if (!receiveThread.IsAlive) { + Start(); + } } void EndReceiver() { diff --git a/Unity/OpenSeeExpression.cs b/Unity/OpenSeeExpression.cs index d836b2e..18b60bb 100644 --- a/Unity/OpenSeeExpression.cs +++ b/Unity/OpenSeeExpression.cs @@ -169,7 +169,7 @@ public class OpenSeeExpression : MonoBehaviour private void SelectPoints() { List indexList = new List(); for (int i = 0; i < colsBase; i++) - if (i < 2 || i > 4) // Translation should not be used for training! + if (i > 4) // Translation and (sometimes unavailable) eye open fields should not be used for training! indexList.Add(i); cols = indexList.Count; if (pointSelection.pointsFaceContour) @@ -303,6 +303,8 @@ public class OpenSeeExpression : MonoBehaviour ResetInfo(); return false; } + modelReady = false; + //model = new SVMModel(); SelectPoints(); List keys = new List(); List accuracyWarnings = new List();