From 54fad068f41ba7b0d2f16699a3f774be2a0d84e9 Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期四, 14 二月 2019 12:02:50 +0800
Subject: [PATCH] 3335 配置表读取重构。
---
Assets/Editor/Actor/ModelResourcesBuilder.cs | 108 ++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 80 insertions(+), 28 deletions(-)
diff --git a/Assets/Editor/Actor/ModelResourcesBuilder.cs b/Assets/Editor/Actor/ModelResourcesBuilder.cs
index 59586af..00ea869 100644
--- a/Assets/Editor/Actor/ModelResourcesBuilder.cs
+++ b/Assets/Editor/Actor/ModelResourcesBuilder.cs
@@ -1,12 +1,12 @@
-锘縰sing TableConfig;
+锘�
using UnityEngine;
using UnityEditor;
public class ModelResourcesBuilder : ResourcesBuilder
{
- public void BuildModelRes(int id)
+ public void BuildModelRes(int id, bool isHighMesh = false)
{
- ModelResConfig _modelRes = Config.Instance.Get<ModelResConfig>(id);
+ ModelResConfig _modelRes = ModelResConfig.Get(id);
if (_modelRes == null)
{
Debug.LogWarningFormat("瑕佺敓鎴愮殑ModelRes璧勬簮id: {0} 骞朵笉瀛樺湪浜庨厤缃〃涓�, 璇风‘璁ゆ槸鍚﹀~鍐欐湁閿�.", id);
@@ -15,62 +15,70 @@
switch ((E_ModelResType)_modelRes.Type)
{
case E_ModelResType.Suit:
- BuildClothes(id);
+ BuildClothes(id, isHighMesh);
break;
case E_ModelResType.Wing:
- BuildWing(id);
+ BuildWing(id, isHighMesh);
break;
case E_ModelResType.Weapon:
- BuildWeapon(id);
+ BuildWeapon(id, isHighMesh);
break;
case E_ModelResType.Horse:
- BuildHorse(id);
+ BuildHorse(id, isHighMesh);
break;
case E_ModelResType.Secondary:
- BuildSecondary(id);
+ BuildSecondary(id, isHighMesh);
+ break;
+ case E_ModelResType.Hand:
+ BuildHand(id, isHighMesh);
break;
}
}
- public void BuildClothes(int id)
+ public void BuildClothes(int id, bool isHighMesh)
{
BuildAnimationClip(id);
BuildAnimatorController(id, "Temple_AnimatorController_Hero", "animatorBuildConfig");
- BuildPrefab(id, InstanceResourcesLoader.raceSuffix);
+ BuildPrefab(id, InstanceResourcesLoader.raceSuffix, isHighMesh);
}
- public void BuildWeapon(int id)
+ public void BuildWeapon(int id, bool isHighMesh)
{
- BuildPrefab(id, InstanceResourcesLoader.weaponSuffix);
+ BuildPrefab(id, InstanceResourcesLoader.weaponSuffix, isHighMesh);
}
- public void BuildSecondary(int id)
+ public void BuildSecondary(int id, bool isHighMesh)
{
- BuildPrefab(id, InstanceResourcesLoader.secondarySuffix);
+ BuildPrefab(id, InstanceResourcesLoader.secondarySuffix, isHighMesh);
}
- public void BuildHorse(int id)
+ public void BuildHand(int id, bool isHighMesh)
+ {
+ BuildPrefab(id, InstanceResourcesLoader.handSuffix, isHighMesh);
+ }
+
+ public void BuildHorse(int id, bool isHighMesh)
{
BuildAnimationClip(id);
BuildAnimatorController(id, "Temple_AnimatorController_Horse", "animatorBuildConfig");
- BuildPrefab(id, InstanceResourcesLoader.horseSuffix);
+ BuildPrefab(id, InstanceResourcesLoader.horseSuffix, isHighMesh);
}
- public void BuildWing(int id)
+ public void BuildWing(int id, bool isHighMesh)
{
BuildAnimationClip(id);
BuildAnimatorController(id, "Temple_AnimatorController_Wing", "animatorBuildConfig_Wing");
- BuildPrefab(id, InstanceResourcesLoader.wingSuffix);
+ BuildPrefab(id, InstanceResourcesLoader.wingSuffix, isHighMesh);
}
- private void BuildPrefab(int id, string suffix)
+ private void BuildPrefab(int id, string suffix, bool isHighMesh = false)
{
if (!IsBuildPrefab)
{
return;
}
- ModelResConfig _modelRes = Config.Instance.Get<ModelResConfig>(id);
+ ModelResConfig _modelRes = ModelResConfig.Get(id);
string _path = _modelRes.ResourcesName;
string _resName = _modelRes.ResourcesName;
if (_path.IndexOf('/') != -1)
@@ -79,7 +87,33 @@
_path = _path.Substring(0, _modelRes.ResourcesName.IndexOf('/'));
}
- BuildPrefab(_path, _resName, suffix);
+ if (suffix.Equals(InstanceResourcesLoader.raceSuffix))
+ {
+ HandleMaterial(_path, _resName, _modelRes.Material_Fight_Normal);
+ HandleMaterial(_path, _resName, _modelRes.Material_UI_Normal);
+ HandleMaterial(_path, _resName, _modelRes.Material_Fight_Suit);
+ HandleMaterial(_path, _resName, _modelRes.Material_UI_Suit);
+ }
+
+ BuildPrefab(_path, _resName, suffix, null, isHighMesh);
+ }
+
+ public static void HandleMaterial(string path, string bunedleName, string assetName)
+ {
+ if (string.IsNullOrEmpty(assetName))
+ {
+ return;
+ }
+
+ string _originalePath = string.Format("Assets/ART/Role/{0}/Materials/{1}.mat", path, assetName);
+ var _old = AssetDatabase.LoadAssetAtPath<Material>(_originalePath);
+ var _material = Object.Instantiate(_old);
+ AssetDatabase.CreateAsset(_material, "Assets/ResourcesOut/Mob/" + path + "/Materials/" + assetName + ".mat");
+ var _importer = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(_material));
+ _importer.assetBundleName = ResourcesPath.MOB_FOLDER_NAME
+ + (InstanceResourcesLoader.raceSuffix + bunedleName).ToLower();
+
+ EditorUtility.SetDirty(_material);
}
public static void BuildAnimationClip(int id)
@@ -89,7 +123,7 @@
return;
}
- ModelResConfig _modelRes = Config.Instance.Get<ModelResConfig>(id);
+ ModelResConfig _modelRes = ModelResConfig.Get(id);
string _path = _modelRes.ResourcesName;
if (_path.IndexOf('/') != -1)
{
@@ -101,12 +135,12 @@
public static void BuildAnimatorController(int id, string templeName, string configName)
{
- if (!IsBuildAnimatorController)
+ if (!IsBuildAnimatorController && !IsBuildAnimatorUIController)
{
return;
}
- ModelResConfig _modelRes = Config.Instance.Get<ModelResConfig>(id);
+ ModelResConfig _modelRes = ModelResConfig.Get(id);
string _path = _modelRes.ResourcesName;
if (_path.IndexOf('/') != -1)
{
@@ -114,10 +148,22 @@
}
BuildAnimatorController(_path, templeName, configName);
+
+ if (ResourcesBuilder.IsBuildAnimatorUIController)
+ {
+ BuildAnimatorController(_path, "Temple_AnimatorController_UI", "animatorBuildConfig", null);
+ }
}
protected override void OnSetupRenderer(string path, string resName, ref Renderer renderer)
- {
+ {//Assets/ART/Role/A_Zs_Sb/Materials/A_Zs05_Sb.mat
+ string _originalPath = path;
+
+ if (path.EndsWith("_Sb"))
+ {
+ path = path.Replace("_Sb", "");
+ resName = resName.Replace("_Sb", "");
+ }
string _materialPath = string.Format("Assets/ART/Role/{0}/Materials/{1}.mat", path, resName);
Material _material = AssetDatabase.LoadAssetAtPath<Material>(_materialPath);
@@ -128,9 +174,15 @@
// 璁剧疆涓轰笉鎺ュ彈闃村奖
renderer.receiveShadows = false;
-
- renderer.materials = new Material[0];
- renderer.sharedMaterial = AssetDatabase.LoadAssetAtPath<Material>(_materialPath);
+ if (_originalPath.Equals("A_Zs") || _originalPath.Equals("A_Fs"))
+ {
+ renderer.material = renderer.sharedMaterial = null;
+ renderer.materials = renderer.sharedMaterials = new Material[0];
+ }
+ else
+ {
+ renderer.material = renderer.sharedMaterial = AssetDatabase.LoadAssetAtPath<Material>(_materialPath);
+ }
// 杩欓噷鏄缈呰唨鐨勭壒娈婂鐞�
Transform _parent = renderer.transform.parent;
--
Gitblit v1.8.0