Skip to content

Commit ff074ef

Browse files
Internal/master
Internal/master
2 parents 9c18204 + 3e1eced commit ff074ef

File tree

1,846 files changed

+264902
-13440
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,846 files changed

+264902
-13440
lines changed

Packages/com.unity.render-pipelines.core/Editor-PrivateShared/AssemblyInfo.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
using System.Runtime.CompilerServices;
22

3+
// HDRP
34
[assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor")]
5+
[assembly: InternalsVisibleTo("Unity.RenderPipelines.HighDefinition.Editor.Tests")]
6+
7+
// URP
48
[assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.Editor")]
59
[assembly: InternalsVisibleTo("Unity.RenderPipelines.Universal.Editor.Tests")]
610

Packages/com.unity.render-pipelines.core/Editor-PrivateShared/AssetCallbacks/AssetCreationUtil.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ static void CreateAsset(string name, Action<string> callback = null, string exte
9292
assetCreationCallback.extension = extension;
9393

9494
var icon = AssetPreview.GetMiniTypeThumbnail(type);
95-
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0, assetCreationCallback, name, icon, null, false);
95+
ProjectWindowUtil.StartNameEditingIfProjectWindowExists(EntityId.None, assetCreationCallback, name, icon, null, false);
9696
}
9797

9898
class AssetCreationCallback : ProjectWindowCallback.AssetCreationEndAction

Packages/com.unity.render-pipelines.core/Editor-PrivateShared/Tools/Converter/AssetsConverter.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ void OnSearchFinish()
3030
contextSearchQueriesAndIds,
3131
(item, description) =>
3232
{
33-
var assetItem = new RenderPipelineConverterAssetItem(item.id);
33+
var assetItem = new RenderPipelineConverterAssetItem(item.id)
34+
{
35+
info = description
36+
};
3437
assets.Add(assetItem);
3538
},
3639
OnSearchFinish
Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
using System;
44
using UnityEngine;
55

6-
namespace UnityEditor.Rendering.Universal
6+
namespace UnityEditor.Rendering.Converter
77
{
88
internal class MaterialReferenceBuilder : IDisposable
99
{

Packages/com.unity.render-pipelines.core/Editor-PrivateShared/Tools/Converter/ReadonlyMaterialConverter/ReadonlyMaterialConverter.MaterialReferenceBuilder.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
using System;
2-
using System.ComponentModel;
32
using System.Reflection;
43
using System.Text;
54
using UnityEditor.SceneManagement;
65
using UnityEngine;
76
using UnityEngine.SceneManagement;
8-
using static UnityEditor.Rendering.Universal.MaterialReferenceBuilder;
7+
using static UnityEditor.Rendering.Converter.MaterialReferenceBuilder;
98
using Object = UnityEngine.Object;
109

11-
namespace UnityEditor.Rendering.Universal
10+
namespace UnityEditor.Rendering.Converter
1211
{
1312
internal class MaterialReferenceChanger : IDisposable
1413
{
1514
MaterialReferenceBuilder m_Builder;
15+
ReadonlyMaterialMap m_Mappings;
1616

17-
public MaterialReferenceChanger()
17+
public MaterialReferenceChanger(ReadonlyMaterialMap mappings)
1818
{
1919
m_Builder = new MaterialReferenceBuilder();
20+
m_Mappings = mappings;
2021
}
2122

2223
public void Dispose()
@@ -47,7 +48,7 @@ internal static bool AreMaterialsEqual(Material[] a, Material[] b)
4748
return true;
4849
}
4950

50-
private static bool TryChangeMaterialArray(Func<object> getter, Action<object> setter)
51+
private bool TryChangeMaterialArray(Func<object> getter, Action<object> setter)
5152
{
5253
var materials = getter() as Material[];
5354
if (materials == null)
@@ -56,7 +57,7 @@ private static bool TryChangeMaterialArray(Func<object> getter, Action<object> s
5657
bool setIsNeeded = false;
5758
for (int i = 0; i < materials.Length; ++i)
5859
{
59-
if (ReadonlyMaterialMap.TryGetMappingMaterial(materials[i], out var mappingMaterial))
60+
if (m_Mappings.TryGetMappingMaterial(materials[i], out var mappingMaterial))
6061
{
6162
materials[i] = mappingMaterial;
6263
setIsNeeded = true;
@@ -72,10 +73,10 @@ private static bool TryChangeMaterialArray(Func<object> getter, Action<object> s
7273
return true;
7374
}
7475

75-
private static bool TryChangeMaterial(Func<object> getter, Action<object> setter)
76+
private bool TryChangeMaterial(Func<object> getter, Action<object> setter)
7677
{
7778
var material = getter() as Material;
78-
if (ReadonlyMaterialMap.TryGetMappingMaterial(material, out var mappingMaterial))
79+
if (m_Mappings.TryGetMappingMaterial(material, out var mappingMaterial))
7980
{
8081
setter(mappingMaterial);
8182
var updated = getter() as Material;
@@ -85,7 +86,7 @@ private static bool TryChangeMaterial(Func<object> getter, Action<object> setter
8586
return true;
8687
}
8788

88-
private static bool ReassignMaterialsFromInstance(object obj, MemberInfo member, bool isArray)
89+
private bool ReassignMaterialsFromInstance(object obj, MemberInfo member, bool isArray)
8990
{
9091
if (obj == null || member == null)
9192
return false;
@@ -206,7 +207,6 @@ public bool ReassignUnityObjectMaterials(Object obj, StringBuilder errors)
206207
{
207208
// Make sure the changes get saved
208209
EditorUtility.SetDirty(obj);
209-
EditorSceneManager.SaveScene(SceneManager.GetActiveScene());
210210
}
211211
else
212212
errors.AppendLine($"Could not reassign materials of {obj} with {obj.GetType()} type.");

Packages/com.unity.render-pipelines.core/Editor-PrivateShared/Tools/Converter/ReadonlyMaterialConverter/ReadonlyMaterialConverter.MaterialReferenceChanger.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Text;
4+
using UnityEngine;
5+
6+
namespace UnityEditor.Rendering.Converter
7+
{
8+
internal class ReadonlyMaterialMap
9+
{
10+
public bool TryGetMappingMaterial(Material material, out Material mappingMaterial)
11+
{
12+
mappingMaterial = material;
13+
14+
if (m_BuiltInMaterialsMappings.TryGetValue(material.name, out var mapping))
15+
mappingMaterial = mapping();
16+
17+
return mappingMaterial != null;
18+
}
19+
20+
public int count => m_BuiltInMaterialsMappings.Count;
21+
22+
public IEnumerable<string> Keys => m_BuiltInMaterialsMappings.Keys;
23+
24+
Dictionary<string, Func<Material>> m_BuiltInMaterialsMappings = new();
25+
26+
public List<(string materialName, string searchQuery)> GetMaterialSearchList()
27+
{
28+
List<(string materialName, string searchQuery)> list = new();
29+
foreach (var mat in GetBuiltInMaterials())
30+
{
31+
string formattedId = $"<$object:{GlobalObjectId.GetGlobalObjectIdSlow(mat)},UnityEngine.Object$>";
32+
list.Add(($"p: ref={formattedId}", $"{mat.name} is being referenced"));
33+
}
34+
return list;
35+
}
36+
37+
public ReadonlyMaterialMap(Dictionary<string, Func<Material>> mappings)
38+
{
39+
m_BuiltInMaterialsMappings = mappings;
40+
}
41+
42+
public Material[] GetBuiltInMaterials()
43+
{
44+
using (UnityEngine.Pool.ListPool<Material>.Get(out var tmp))
45+
{
46+
foreach (var materialName in Keys)
47+
{
48+
var name = materialName + ".mat";
49+
50+
Material mat = null;
51+
foreach (var material in AssetDatabaseHelper.FindAssets<Material>())
52+
{
53+
if (material.name == materialName)
54+
{
55+
mat = material;
56+
break;
57+
}
58+
}
59+
60+
if (mat == null)
61+
{
62+
mat = AssetDatabase.GetBuiltinExtraResource<Material>(name);
63+
if (mat == null)
64+
{
65+
mat = Resources.GetBuiltinResource<Material>(name);
66+
if (mat == null)
67+
{
68+
mat = Resources.Load<Material>(name);
69+
}
70+
}
71+
}
72+
73+
if (mat == null)
74+
{
75+
Debug.LogError($"Material '{materialName}' not found in built-in resources or project assets.");
76+
continue;
77+
}
78+
79+
tmp.Add(mat);
80+
}
81+
return tmp.ToArray();
82+
}
83+
}
84+
}
85+
86+
[Serializable]
87+
internal abstract class ReadonlyMaterialConverter : AssetsConverter
88+
{
89+
protected virtual Dictionary<string, Func<Material>> materialMappings { get; }
90+
91+
protected override List<(string query, string description)> contextSearchQueriesAndIds
92+
{
93+
get => mappings.GetMaterialSearchList();
94+
}
95+
96+
internal MaterialReferenceChanger m_MaterialReferenceChanger;
97+
private ReadonlyMaterialMap m_Mappings;
98+
99+
internal ReadonlyMaterialMap mappings
100+
{
101+
get
102+
{
103+
m_Mappings ??= new ReadonlyMaterialMap(materialMappings);
104+
return m_Mappings;
105+
}
106+
}
107+
108+
public override void BeforeConvert()
109+
{
110+
m_MaterialReferenceChanger = new MaterialReferenceChanger(mappings);
111+
}
112+
113+
public override void AfterConvert()
114+
{
115+
m_MaterialReferenceChanger?.Dispose();
116+
m_MaterialReferenceChanger = null;
117+
}
118+
119+
protected override Status ConvertObject(UnityEngine.Object obj, StringBuilder message)
120+
{
121+
if (!m_MaterialReferenceChanger.ReassignUnityObjectMaterials(obj, message))
122+
{
123+
return Status.Error;
124+
}
125+
126+
return Status.Success;
127+
}
128+
}
129+
}

Packages/com.unity.render-pipelines.core/Editor-PrivateShared/Tools/Converter/ReadonlyMaterialConverter/ReadonlyMaterialConverter.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)