两个相关大小的列表

时间:2017-10-06 15:49:51

标签: c# unity3d

我班上有两张公开名单。

我可以从检查员那里改变他们的尺寸。我希望他们的尺寸相互依赖(当我改变一秒的尺寸时也会改变),但我不知道如何实现它。

我尝试创建自己继承自列表的类(这会让我在列表重建时调用事件)并使用它,但它不会显示在检查器中。

我尝试将[Serializable]用于MyList,没有任何变化。

你有什么想法怎么做?

 public class ListsTest : MonoBehaviour {

     public List<string> list1 = new List<string>();
     public List<string> list2 = new List<string>();

     public class MyList<T>: List<T>{

     }

     public MyList<string> list3 = new MyList<string>();
 }

enter image description here

更复杂的例子:

方法1:

using System.Collections.Generic;
using UnityEngine;
using System;

public class ListTest : MonoBehaviour {

    public SomeData someData = new SomeData();

    public List<MoreData> moreData = new List<MoreData>();


    [Serializable]
    public class SomeData{
        public string data1;
        public string data2;
        //More data
    }

    [Serializable]
    public class MoreData {

        public EvenMoreData evenMoreData = new EvenMoreData();
        public CanItGoAnyFurther canItGoAnyFurther = new CanItGoAnyFurther();

        [Serializable]
        public class EvenMoreData {
            public string data3;
            public string data4;
            //More data
        }

        [Serializable]
        public class CanItGoAnyFurther {
            public string data5;
            public string data6;
            //More data
        }
    }
}

enter image description here

方法2:

using System.Collections.Generic;
using UnityEngine;
using System;

public class ListTest2 : MonoBehaviour {

    public SomeData someData = new SomeData();

    public List<EvenMoreData> evenMoreData = new List<EvenMoreData>();
    public List<CanItGoAnyFurther> canItGoAnyFurther = new List<CanItGoAnyFurther>();

    [Serializable]
    public class SomeData
    {
        public string data1;
        public string data2;
        //More data
    }

    [Serializable]
    public class EvenMoreData
    {
        public string data3;
        public string data4;
        //More data
    }

    [Serializable]
    public class CanItGoAnyFurther
    {
        public string data5;
        public string data6;
        //More data
    }
}

enter image description here

在我看来,方法2检查员的数据更易读,更容易与设计师进行比较。但是有两个独立尺寸的列表。

0 个答案:

没有答案