【载具涂装】涂装测试

main
Yuntao Hu 2024-12-26 13:24:22 +08:00
parent dbb6600be3
commit 2755cd6023
7 changed files with 111 additions and 33 deletions

View File

@ -13,6 +13,8 @@ using Cysharp.Threading.Tasks;
using System.Collections.Generic;
using Random = UnityEngine.Random;
using Constants = Framework.Constants;
using cfg.VihecleCultivateCfg;
using Gameplay.Net;
public class TeamPreviewNode : MonoBehaviour
{
@ -339,6 +341,32 @@ public class TeamPreviewNode : MonoBehaviour
{
DebugUtil.LogError("加载炮台失败: {0}", batteryPath);
}
//设置涂装
var paintCfg = Actor.Instance.Character.GetVehicleDevelopment(id).paint_set;
if (paintCfg != null)
{
for (int i = 1; i < (int)PaintType.Max; i++)
{
var paintID = paintCfg[i];
if (paintID == 0)
continue;
var paintPath = PathEx.GetVehiclePaintPath((int)id, (int)paintID);
//加载涂装材质球
var material = await CommonUtils.GetVehiclePaintMaterial(paintPath);//临时方法
var root = VehicleDataHelper.FindVehiclePartRoot(go, (int)id, (PaintType)i);
if (material != null && root != null)
{
var renderers = root.GetComponent<SkinnedMeshRenderer>();
renderers.materials = new Material[] { material };
}
}
}
else
DebugUtil.LogError("载具涂装配置为空!");
}
}
}

View File

@ -412,7 +412,9 @@ public class UI_VehicleCultivateProController : UIWindow
continue;
var paintPath = PathEx.GetVehiclePaintPath((int)id, (int)paintID);
var material = await CommonUtils.GetVehiclePaintMaterial(paintPath);
//加载涂装材质球
var material = await CommonUtils.GetVehiclePaintMaterial(paintPath);//临时方法
var root = VehicleDataHelper.FindVehiclePartRoot(go, (int)id, (PaintType)i);
if (material != null && root != null)

View File

@ -226,6 +226,17 @@ public class UI_VehicleSkinController : UIWindow
//invoke when destroy
public override void OnRelease()
{
ResetSkin();
base.OnRelease();
EventManager.Instance.Send(EventManager.EventName.EN_UIControllCultivateMainInput, true);
EventManager.Instance.Unregister<uint>(EventManager.EventName.ItemChange, OnItemChange);
EventManager.Instance.Unregister(EventManager.EventName.CharacterInfoRefresh, OnDataRefresh);
//CommonUtils.ScreenshotReset();
}
void ResetSkin()
{
for(int i = 1; i < (int)PaintType.Max; i++)
{
@ -236,17 +247,10 @@ public class UI_VehicleSkinController : UIWindow
if (curEquipedMaterial.ContainsKey((PaintType)i) && renderer.materials.Length > 0)
{
renderer.materials[0].CopyMatchingPropertiesFromMaterial(curEquipedMaterial[(PaintType)i]);
DebugUtil.Log(renderer.name + "set material: " + curEquipedMaterial[(PaintType)i].name);
}
}
}
base.OnRelease();
EventManager.Instance.Send(EventManager.EventName.EN_UIControllCultivateMainInput, true);
EventManager.Instance.Unregister<uint>(EventManager.EventName.ItemChange, OnItemChange);
EventManager.Instance.Unregister(EventManager.EventName.CharacterInfoRefresh, OnDataRefresh);
//CommonUtils.ScreenshotReset();
}
}
void OnItemChange(uint itemID)
{
@ -291,6 +295,9 @@ public class UI_VehicleSkinController : UIWindow
async void SetCurSelectSkin(int id)
{
if (curSelectSkinID == id)
return;
ResetSkin();
curSelectSkinID = id;
var skinStatus = GetSkinStatus(id);

View File

@ -5,6 +5,7 @@ using Gameplay.Level;
using Gameplay.Net;
using Gameplay.Vehicle.Data;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
public static class VehicleDataHelper
@ -251,7 +252,17 @@ public static class VehicleDataHelper
goName = string.Format("C000{0}/G_C000{0}_M", vehicleID);
break;
case PaintType.Fort:
goName = string.Format("C000{0}/G_C000{0}_U", vehicleID);
var allTrans = vehicleModel.GetComponentsInChildren<Transform>();
var pointName = "Battery_point01";
var fireTrans = allTrans.First(t => t.name == pointName).GetChild(0);
if (fireTrans != null)
{
var renderers = fireTrans.GetComponentsInChildren<SkinnedMeshRenderer>();
if (renderers != null && renderers.Length > 0)
{
return renderers[0].gameObject;
}
}
break;
case PaintType.CaterpillarBelt:
goName = string.Format("C000{0}/G_C000{0}_D", vehicleID);

View File

@ -169,7 +169,7 @@ namespace Gameplay.Utils
return "";
}
return string.Format("Assets/Art/Character/Models/Vehicle/{0}", cfg.MaterialPath);
return string.Format("Assets/Art/Character/Models/{0}", cfg.MaterialPath);
}
}
}

View File

@ -1,9 +1,12 @@
using System.Linq;
using cfg.VihecleCultivateCfg;
using Cysharp.Threading.Tasks;
using Gameplay.Character;
using Gameplay.Net;
using Gameplay.Performance;
using Gameplay.Unit;
using Gameplay.Unit.Data;
using Gameplay.Utils;
using Gameplay.Vehicle.Data;
using PhxhSDK;
using UnityEngine;
@ -55,7 +58,34 @@ namespace Gameplay.Vehicle
var fireTrans = allTrans.First(t => t.name == pointName);
battery = new BaseBattery(this, fireTrans);
await battery.CreateView();
//设置涂装
var id = configData.configId;
var paintCfg = Actor.Instance.Character.GetVehicleDevelopment(id).paint_set;
if (paintCfg != null)
{
for (int i = 1; i < (int)PaintType.Max; i++)
{
var paintID = paintCfg[i];
if (paintID == 0)
continue;
var paintPath = PathEx.GetVehiclePaintPath((int)id, (int)paintID);
//加载涂装材质球
var material = await CommonUtils.GetVehiclePaintMaterial(paintPath);//临时方法
var root = VehicleDataHelper.FindVehiclePartRoot(go, (int)id, (PaintType)i);
if (material != null && root != null)
{
var renderers = root.GetComponent<SkinnedMeshRenderer>();
renderers.materials = new Material[] { material };
}
}
}
else
DebugUtil.LogError("载具涂装配置为空!");
// 绑定动画数据
vAnim = new VehicleAnim(this);

View File

@ -15,7 +15,7 @@
"ItemID": 21,
"PaintCost": [],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "C00002/Mat/M_C00002_M_01.mat",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_M_01.mat",
"BatteryID": 0
},
{
@ -34,7 +34,7 @@
"ItemID": 22,
"PaintCost": [],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Battery/R00006/Mat/M_R00006_01.mat",
"BatteryID": 0
},
{
@ -53,7 +53,7 @@
"ItemID": 23,
"PaintCost": [],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_D_01.mat",
"BatteryID": 0
},
{
@ -72,7 +72,7 @@
"ItemID": 24,
"PaintCost": [],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "C00002/Mat/M_C00002_M_01.mat",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_M_01.mat",
"BatteryID": 0
},
{
@ -91,7 +91,7 @@
"ItemID": 25,
"PaintCost": [],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Battery/R00006/Mat/M_R00006_01.mat",
"BatteryID": 0
},
{
@ -110,7 +110,7 @@
"ItemID": 26,
"PaintCost": [],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_D_01.mat",
"BatteryID": 0
},
{
@ -134,7 +134,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "C00002/Mat/M_C00002_M_01.mat",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_M_01.mat",
"BatteryID": 0
},
{
@ -158,7 +158,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Battery/R00006/Mat/M_R00006_01.mat",
"BatteryID": 0
},
{
@ -182,7 +182,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_D_01.mat",
"BatteryID": 0
},
{
@ -206,7 +206,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "C00002/Mat/M_C00002_M_01.mat",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_M_01.mat",
"BatteryID": 0
},
{
@ -230,7 +230,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Battery/R00006/Mat/M_R00006_01.mat",
"BatteryID": 0
},
{
@ -254,7 +254,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_D_01.mat",
"BatteryID": 0
},
{
@ -278,7 +278,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "C00002/Mat/M_C00002_M_01.mat",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_M_01.mat",
"BatteryID": 0
},
{
@ -302,7 +302,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Battery/R00006/Mat/M_R00006_01.mat",
"BatteryID": 0
},
{
@ -326,7 +326,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_D_01.mat",
"BatteryID": 0
},
{
@ -350,7 +350,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "C00002/Mat/M_C00002_M_01.mat",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_M_01.mat",
"BatteryID": 0
},
{
@ -374,7 +374,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Battery/R00006/Mat/M_R00006_01.mat",
"BatteryID": 0
},
{
@ -398,7 +398,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_D_01.mat",
"BatteryID": 0
},
{
@ -422,7 +422,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "C00002/Mat/M_C00002_M_01.mat",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_M_01.mat",
"BatteryID": 0
},
{
@ -446,7 +446,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Battery/R00006/Mat/M_R00006_01.mat",
"BatteryID": 0
},
{
@ -470,7 +470,7 @@
}
],
"IconPath": "Assets/Art/UI/Texture/Interface_Vehicle/UI_TempVehicle.png",
"MaterialPath": "",
"MaterialPath": "Vehicle/C00002/Mat/M_C00002_D_01.mat",
"BatteryID": 0
}
]