少年修仙传客户端基础资源
dabaoji
2023-11-13 0a23e1b83f8fda8ab9f9e32fe71c26c431faf63a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using UnityEngine;
using UnityEditor;
 
using System.Collections.Generic;
 
public class NpcResourcesBuilder : ResourcesBuilder
{
    public void BuildNpc(string modelName, string outName = null, int type = -1, bool isHighMesh = false)
    {
        if (modelName.Contains("A_Zs"))
        {
            return;
        }
 
        BuildAnimationClip1(modelName);
        BuildAnimatorController(modelName, outName, type);
 
        var showConfigs = ActorShowConfig.GetValues();
        NPCConfig _npcModel = null;
        foreach (var _item in showConfigs)
        {
            for (int i = 0; i < _item.showNpcs.Length; i++)
            {
                if (_item.showNpcs[i] == 0)
                {
                    continue;
                }
                _npcModel = NPCConfig.Get(_item.showNpcs[i]);
                if (_npcModel == null)
                {
                    continue;
                }
                if (_npcModel.MODE.Equals(outName))
                {
                    BuildBossShowAnimatorController(outName);
                    break;
                }
            }
        }
 
        var realmConfigs = RealmConfig.GetValues();
        foreach (var _realmConfig in realmConfigs)
        {
            _npcModel = NPCConfig.Get(_realmConfig.BossID);
            if (_npcModel == null)
            {
                continue;
            }
 
            if (_npcModel.MODE.Equals(modelName))
            {
                BuildRealmAnimatorController(modelName);
                break;
            }
        }
 
        BuildPrefab(modelName, outName, isHighMesh);
    }
 
    public void BuildPrefab(string modelName, string outName, bool isHighMesh = false)
    {
        if (!IsBuildPrefab)
        {
            return;
        }
 
        BuildPrefab(modelName, modelName, InstanceResourcesLoader.raceSuffix, outName, isHighMesh);
    }
 
    public void BuildAnimationClip1(string modelName)
    {
        if (!IsBuildAnimationClip)
        {
            return;
        }
 
        BuildAnimationClip(modelName);
    }
 
    public void BuildAnimatorController(string modelName, string outName = null, int type = -1)
    {
        if (!IsBuildAnimatorController && !IsBuildAnimatorUIController)
        {
            return;
        }
 
        if (type <= 0)
        {
            BuildAnimatorController(modelName, "Temple_AnimatorController_Mob", "animatorBuildConfig", outName);
        }
        else if (type == 1)
        {
            BuildAnimatorController(modelName, "Temple_AnimatorController_Pet", "animatorBuildConfig", outName);
        }
        else if (type == 2)
        {
            BuildAnimatorController(modelName, "Temple_AnimatorController_Horse", "animatorBuildConfig", outName);
        }
        else if (type == 3)
        {
            BuildAnimatorController(modelName, "Temple_AnimatorController_Guard", "animatorBuildConfig", outName);
        }
 
        if (ResourcesBuilder.IsBuildAnimatorUIController)
        {
            BuildAnimatorController(modelName, "Temple_AnimatorController_UI", "animatorBuildConfig", outName);
        }
    }
 
    public void BuildBossShowAnimatorController(string modelName)
    {
        if (!IsBuildAnimatorController)
        {
            return;
        }
 
        BuildAnimatorController(modelName, "Temple_AnimatorController_BossShow", "animatorBuildConfig_BossShow");
    }
 
    public void BuildRealmAnimatorController(string modelName)
    {
        if (!IsBuildAnimatorController)
        {
            return;
        }
 
        BuildAnimatorController(modelName, "Temple_AnimatorController_Realm", "animatorBuildConfig_Realm");
    }
 
    protected override void OnSetupRenderer(string resPath, string resName, ref Renderer _renderer)
    {
        string _texturePath = string.Format("Assets/ART/Role/{0}/Materials/{1}.png", resPath, resName);
        string _materialPath = string.Format("Assets/ART/Role/{0}/Materials/{1}.mat", resPath, resName);
 
        // 设置为不产生阴影并且不接受阴影
        _renderer.receiveShadows = false;
        _renderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
 
        // 设置材质
        _renderer.sharedMaterial = AssetDatabase.LoadAssetAtPath<Material>(_materialPath);
        _renderer.sharedMaterial.shader = Shader.Find("Character/Normal Monster");
        Texture _texture = AssetDatabase.LoadAssetAtPath<Texture>(_texturePath);
        _renderer.sharedMaterial.SetTexture("_MainTex", _texture);
    }
}