diff options
author | chai <chaifix@163.com> | 2020-10-23 13:08:43 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-23 13:08:43 +0800 |
commit | b82da95b5181ac8bbae38efb13e950d5e88a4caa (patch) | |
tree | 48a6f3269276484bbc7cfc95f0651f40a2176aa1 /Assets/MaterializeFX/Scripts/MfxObjectMaterialUpdater.cs | |
parent | 917e9e0b320775634dc2e710f7deac74fd0822f0 (diff) |
*移动amplify shader editor到third party目录
Diffstat (limited to 'Assets/MaterializeFX/Scripts/MfxObjectMaterialUpdater.cs')
-rw-r--r-- | Assets/MaterializeFX/Scripts/MfxObjectMaterialUpdater.cs | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/Assets/MaterializeFX/Scripts/MfxObjectMaterialUpdater.cs b/Assets/MaterializeFX/Scripts/MfxObjectMaterialUpdater.cs deleted file mode 100644 index c828afd4..00000000 --- a/Assets/MaterializeFX/Scripts/MfxObjectMaterialUpdater.cs +++ /dev/null @@ -1,79 +0,0 @@ -using System.Collections.Generic;
-using UnityEngine;
-using Object = UnityEngine.Object;
-
-namespace Assets.MaterializeFX.Scripts
-{
- internal sealed class MfxObjectMaterialUpdater
- {
- private readonly Renderer[] _renderers;
- private readonly Dictionary<Renderer, Material[]> _rendererToOriginalMaterialsMap = new Dictionary<Renderer, Material[]>();
- private readonly List<Material> _mfxMaterials = new List<Material>();
-
- public MfxObjectMaterialUpdater(GameObject targetObject, bool modifyChildren, bool replaceMaterials, Material mfxMaterialTemplate)
- {
- _renderers = modifyChildren ? targetObject.GetComponentsInChildren<Renderer>() : targetObject.GetComponents<Renderer>();
-
- if (!replaceMaterials)
- {
- foreach (var renderer in _renderers)
- foreach (var material in renderer.sharedMaterials)
- _mfxMaterials.Add(material);
- return;
- }
-
- Replace(mfxMaterialTemplate);
- }
-
- public void SetFloat(string propertyName, float value)
- {
- foreach (var mfxMaterial in _mfxMaterials)
- mfxMaterial.SetFloat(propertyName, value);
- }
-
- public void SetInt(string propertyName, int value)
- {
- foreach (var mfxMaterial in _mfxMaterials)
- mfxMaterial.SetInt(propertyName, value);
- }
-
- public void SetVector(string propertyName, Vector3 value)
- {
- foreach (var mfxMaterial in _mfxMaterials)
- mfxMaterial.SetVector(propertyName, value);
- }
-
- public void Replace(Material mfxMaterialTemplate)
- {
- _rendererToOriginalMaterialsMap.Clear();
- _mfxMaterials.Clear();
-
- foreach (var renderer in _renderers)
- {
- var rendererSharedMaterials = renderer.sharedMaterials;
-
- _rendererToOriginalMaterialsMap[renderer] = rendererSharedMaterials;
- var newMaterials = MfxMaterialUtil.ReplaceMaterialsToMfx(mfxMaterialTemplate, rendererSharedMaterials, false);
- renderer.sharedMaterials = newMaterials.ToArray();
- _mfxMaterials.AddRange(newMaterials);
- }
- }
-
- public void Revert()
- {
- // ReSharper disable once ForCanBeConvertedToForeach
- for (int i = 0; i < _renderers.Length; i++)
- {
- if (_rendererToOriginalMaterialsMap.ContainsKey(_renderers[i]))
- _renderers[i].materials = _rendererToOriginalMaterialsMap[_renderers[i]];
- }
-
- _rendererToOriginalMaterialsMap.Clear();
-
- foreach (var mfxMaterial in _mfxMaterials)
- Object.DestroyImmediate(mfxMaterial);
-
- _mfxMaterials.Clear();
- }
- }
-}
\ No newline at end of file |