View层持有部位配置

持有数据

alt

在UI窗口更新模型中,之前的逻辑有可以合并的部分,修改颜色可以直接让CharacterCreator->Player_View去做。

alt

但是,要修改成的颜色需要从CustomCharacterData中获取,而这份数据是由窗口持有的,所以需要将其传给Player_View。

	//Player_View
	private CustomCharacterData customCharacter;                    //玩家自定义的角色数据-用于持久化
    public void InitData(CustomCharacterData customCharacter)
    {
        this.customCharacter = customCharacter;
    }
	
	//CharacterCreator
	public void InitData(CustomCharacterData customCharacter)
    {
        player_View.Init();
        player_View.InitData(customCharacter);
    }

	//UI_CreateCharacterWindow
	//TODO: 临时在这初始化
    CharacterCreator.Instance.InitData(customCharacterData);

通过UI窗口初始化把数据传给模型Controller再传给View来实现Player_View持有数据,这样就可以直接在Player_View中拿到数据修改颜色。

但需要注意的是,实际上数据的初始化和保存应该由专门的否则持久化的类来完成,这里只是为了方便调试,将数据的持有和初始化都交给UI窗口。

View持有配置

为了方便AA卸载配置资源,现在Player_View中做好配置资源的定义和准备。

	private Dictionary<int, CharacterPartConfigBase> characterPartDic = new Dictionary<int,CharacterPartConfigBase>();

    /// <summary>
    /// 设置部位
    /// </summary>
    public void SetPart(CharacterPartConfigBase characterPartConfig)
    {
        if (characterPartDic.ContainsKey((int)characterPartConfig.CharacterParType))
        {
            //TODO:卸载旧配置的资源
            characterPartDic[(int)characterPartConfig.CharacterParType] = characterPartConfig;

        }
        else
        {
            characterPartDic.Add((int)characterPartConfig.CharacterParType,characterPartConfig);
        }
      .......
    }

在实际切换部位时,完成旧部位配置资源的卸载(修改颜色不需要卸载配置资源)。