删除原来UIRoot下的UI窗口,使用场景管理器加载。

public class CreateCharacterScene : LogicManagerBase<CreateCharacterScene>
{
    private void Start()
    {
        //初始化角色自定义数据
        DataManager.InitCustomCharacterData();

        //初始化角色创建者
        CharacterCreator.Instance.InitData();

        //显示角色选择窗口
        UIManager.Instance.Show<UI_CreateCharacterWindow>();

    }
}

创建数据管理器,将数据的初始化从UI窗口中移除。

/// <summary>
/// 数据管理器
/// </summary>
public static class DataManager 
{
    //自定义角色的数据
    public static CustomCharacterData CustomCharacterData;
    public static void InitCustomCharacterData()
    {
        CustomCharacterData = new CustomCharacterData();
        CustomCharacterData.CustomPartDataDic = new Dictionary<int, CustomCharacterPartData>();
        CustomCharacterData.CustomPartDataDic.Add((int)CharacterParType.Face, new CustomCharacterPartData()
        {
            Index = 1,
            Size = 1,
            Height = 0
        });
        CustomCharacterData.CustomPartDataDic.Add((int)CharacterParType.Hair, new CustomCharacterPartData()
        {
            Index = 1,
            Color1 = Color.white
        });
        CustomCharacterData.CustomPartDataDic.Add((int)CharacterParType.Cloth, new CustomCharacterPartData()
        {
            Index = 1,
            Color1 = Color.white,
            Color2 = Color.black
        });
    }
}