/// <summary> /// Clothes use shaders that do not support applying colors directly, instead they rely on the main texture having all colors and effects already applied to it /// CustomTextureCreate is used to apply colors and masks to the original main texture of the clothes /// </summary> private bool InitializeCreateTextures() { var lib = InfoBase; var mainManifest = lib.GetInfo(ChaListDefine.KeyType.MainManifest); var mainTexAb = lib.GetInfo(ChaListDefine.KeyType.MainTexAB); if ("0" == mainTexAb) { mainTexAb = lib.GetInfo(ChaListDefine.KeyType.MainAB); } var mainTex = lib.GetInfo(ChaListDefine.KeyType.MainTex); if ("0" == mainTexAb || "0" == mainTex) { return(false); } var t2dMain = CommonLib.LoadAsset <Texture2D>(mainTexAb, mainTex, false, mainManifest); if (null == t2dMain) { return(false); } var colorMaskAb = lib.GetInfo(ChaListDefine.KeyType.ColorMaskAB); if ("0" == colorMaskAb) { colorMaskAb = lib.GetInfo(ChaListDefine.KeyType.MainAB); } var colorMaskTex = lib.GetInfo(ChaListDefine.KeyType.ColorMaskTex); if ("0" == colorMaskAb || "0" == colorMaskTex) { Resources.UnloadAsset(t2dMain); return(false); } var t2dColorMask = CommonLib.LoadAsset <Texture2D>(colorMaskAb, colorMaskTex, false, mainManifest); if (null == t2dColorMask) { Resources.UnloadAsset(t2dMain); return(false); } var mainTex02Ab = lib.GetInfo(ChaListDefine.KeyType.MainTex02AB); if ("0" == mainTex02Ab) { mainTex02Ab = lib.GetInfo(ChaListDefine.KeyType.MainAB); } var mainTex02 = lib.GetInfo(ChaListDefine.KeyType.MainTex02); Texture2D t2dMainTex02 = null; if ("0" != mainTex02Ab && "0" != mainTex02) { t2dMainTex02 = CommonLib.LoadAsset <Texture2D>(mainTex02Ab, mainTex02, false, mainManifest); } var colorMask02Ab = lib.GetInfo(ChaListDefine.KeyType.ColorMask02AB); if ("0" == colorMask02Ab) { colorMask02Ab = lib.GetInfo(ChaListDefine.KeyType.MainAB); } var colorMask02Tex = lib.GetInfo(ChaListDefine.KeyType.ColorMask02Tex); Texture2D t2dColorMask02 = null; if ("0" != colorMask02Ab && "0" != colorMask02Tex) { t2dColorMask02 = CommonLib.LoadAsset <Texture2D>(colorMask02Ab, colorMask02Tex, false, mainManifest); } #if KKS var mainTex03Ab = lib.GetInfo(ChaListDefine.KeyType.MainTex03AB); if ("0" == mainTex03Ab) { mainTex03Ab = lib.GetInfo(ChaListDefine.KeyType.MainAB); } var mainTex03 = lib.GetInfo(ChaListDefine.KeyType.MainTex03); Texture2D t2dMainTex03 = null; if ("0" != mainTex03Ab && "0" != mainTex03) { t2dMainTex03 = CommonLib.LoadAsset <Texture2D>(mainTex03Ab, mainTex03, false, mainManifest, true); } var colorMask03Tex = lib.GetInfo(ChaListDefine.KeyType.ColorMask03Tex); var colorMask03Ab = lib.GetInfo(ChaListDefine.KeyType.ColorMask03AB); if ("0" == colorMask03Ab) { colorMask03Ab = lib.GetInfo(ChaListDefine.KeyType.MainAB); } Texture2D t2dColorMask03 = null; if ("0" != colorMask03Ab && "0" != colorMask03Tex) { t2dColorMask03 = CommonLib.LoadAsset <Texture2D>(colorMask03Ab, colorMask03Tex, false, mainManifest, true); } #endif for (var i = 0; i < 3; i++) { CustomTextureCreate ctc = null; Texture2D main = null; Texture2D color = null; if (i == 0) { main = t2dMain; color = t2dColorMask; } else if (1 == i) { main = t2dMainTex02; color = t2dColorMask02; } else { #if KKS main = t2dMainTex03; color = t2dColorMask03; #endif } if (null != main) { ctc = new CustomTextureCreate(Owner.objRoot.transform); ctc.Initialize("chara/mm_base.unity3d", "cf_m_clothesN_create", "", main.width, main.height, RenderTextureFormat.ARGB32); ctc.SetMainTexture(main); ctc.SetTexture(ChaShader._ColorMask, color); } _ctcArr[i] = ctc; } return(true); }