Показать сообщение отдельно
Старый 23.05.2015, 09:18   #2157
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопросы от новичка

Пытаюсь смастерить свой Dictionary, который умеет сериализироваться
[Serializable]
public class 
DictionarySerializable<KV> : IEnumerable<KVPSerializable<KV>> {
    [
SerializeField] protected List<KVPSerializable<KV>> list = new List<KVPSerializable<KV>>();
    public 
int Count {get{return list.Count;}}
    protected 
void Add(K KeyV Value){
        list.
Add(new KVPSerializable<KV>{Key KeyValue Value});
    }
    public 
void Remove(K Key){
        list.
Remove(Find(Key));
    }
    public 
V this[K Key]{
        
get {return Find(Key).Value;}
        
set {
            
bool finded false;
            foreach (var 
v in list){
                if (
v.Key.Equals(Key)){v.Value valuefinded true; break;}
            }
            if (!
finded){Add(Keyvalue);}
        }
    }
    public 
KVPSerializable<KVFind(K Key){
        foreach (var 
v in list){
            if (
v.Key.Equals(Key)){return v;}
        }
        throw new 
System.InvalidOperationException();
    }
    public 
IEnumerator<KVPSerializable<KV>> GetEnumerator(){
        foreach (var 
v in list){
            yield return 
v;
        }
    }
    
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator(){
        return 
this.GetEnumerator();
    }
}

[
Serializable]
public class 
KVPSerializable<KV> {
    public 
K Key; public V Value;

EditorGUI.BeginChangeCheck();
foreach (var 
v in myTarget.dict){
        ....
    
v.Value.strength EditorGUILayout.IntField(v.Value.strength);
        ....
}
if (
EditorGUI.EndChangeCheck()){
    
EditorUtility.SetDirty(target);


Но он не сериализируется (при запуске "игры" и при выходе с нее - данные сбрасываются)
Не могу понять где налажал
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием