InvalidOperationException: List has changed.

Программирование на Юнити.

InvalidOperationException: List has changed.

Сообщение BlackMamba 20 янв 2011, 21:01

Есть код, удаляющий элемент из списка при отключении клиента от сервера:
Синтаксис:
Используется javascript
var PlayerList = new ArrayList();
class Player {var name : String; var info : NetworkPlayer;}
@RPC
function LogToServ (Login : String, Password : String, MyConnectionInfo : NetworkMessageInfo)
        {
        if (SQLEngine.isAccount(Login, Password) == true)
                {
                player = new Player();
                player.name = Login;
                player.info = MyConnectionInfo.sender;
                PlayerList.Add(player);
                Debug.Log("new player added to playerlist");
                Debug.Log ("Player: "+PlayerList[0].name+","+PlayerList[0].info.ipAddress);
                }
        }
function OnPlayerDisconnected(PInfo : NetworkPlayer)
        {
        for (player in PlayerList)
                {if (player.info == PInfo) {PlayerList.Remove(player);}}
        }

при отключении клиента выдает такое предупреждение:
InvalidOperationException: List has changed.
System.Collections.ArrayList+SimpleEnumerator.MoveNext ()
Login.OnPlayerDisconnected (NetworkPlayer PInfo) (at Assets/Scripts/Login.js:31)
по смыслу понимаю, что ему не нравится кусок кода про удаление элемента из списка, но что конкретно не нравится, понять не могу...
может быть кто-то знает, что ему не нравится?
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва

Re: InvalidOperationException: List has changed.

Сообщение Kann 20 янв 2011, 22:55

попробуйте так

Синтаксис:
Используется javascript
function OnPlayerDisconnected(PInfo : NetworkPlayer)
        {
        for (player in PlayerList)
                {if (player.info == PInfo) {PlayerList.Remove(player);break;}}

        }
 
Kann
Старожил
 
Сообщения: 553
Зарегистрирован: 05 ноя 2009, 14:06

Re: InvalidOperationException: List has changed.

Сообщение BlackMamba 21 янв 2011, 00:09

спасибо.
я так понимаю конфликт связан с размерностью ArrayList?
mail: _gdeMoiGusi@gmail.com
skype: Ellseworth
Аватара пользователя
BlackMamba
UNITрон
 
Сообщения: 305
Зарегистрирован: 06 янв 2011, 16:16
Откуда: Москва


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 6