void Start()
{
Thread t = new Thread(ReceiveData);
t.Start();
}
private void ReceiveData()
{
while (true)
{
if (connected)
{
Debug.Log("Run");
try
{
int bytes = 0; // Счетчик полученных байт с сервера
byte[] buffer = new byte[1024]; // Массив байт, для данных полученных с сервера
StringBuilder builder = new StringBuilder();
do
{
bytes = socket.Receive(buffer); // Прием данных от сервера
builder.Append(Encoding.UTF8.GetString(buffer, 0, bytes)); // Строим сообщение из полученных данных ( массива байт )
}
while (socket.Available > 0);
string[] allInfo = builder.ToString().Split(';');
for (int i = 0; i < allInfo.Length; i++)
{
string[] info = allInfo[i].Split('|');
Action action = () => { data.Add(info[0], info[1] + '|' + info[2] + '|' + info[3]); };
Invoke("action", 0f);
}
}
catch (Exception ex)
{
Debug.Log("Error in Helper.FixedUpdate: " + ex.Message);
}
}
}
}
string[] allInfo = builder.ToString().Split(';');
for (int i = 0; i < allInfo.Length; i++)
{
string[] info = allInfo[i].Split('|');
data.Add(info[0], info[1] + '|' + info[2] + '|' + info[3]); // Вот тут не получиться добавить данные в словарь, так как он создан в другом потоке.
}
do
{
bytes = socket.ReceiveFrom(buffer, ref remoteIp); // ТУТ
}
while (socket.Available > 0);
На сцене есть 2 объекта, 1 основной, а 2-ой дополнительный и мне нужно вращать дополнительный вот так:
Но так вращать дополнительный объект не получается, так как, когда основной объект превышает угол поворота в 360, к примеру угол становится 390, то код показывает, что угол равен 330 и тогда в этот момент дополнительный объект начинает вращаться в обратную сторону, т.е. почему тогда в редакторе угол показан 390, а код говорит о том что угол равен 330, а не просто 30, тогда бы все работало. Что делать не пойму, подскажите пожалуйста.