You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
111 lines
4.1 KiB
111 lines
4.1 KiB
using UnityEditor; |
|
|
|
namespace UnityEngine.Rendering.Universal |
|
{ |
|
public partial class Renderer2DData |
|
{ |
|
#if UNITY_EDITOR |
|
[SerializeField] |
|
Renderer2DDefaultMaterialType m_DefaultMaterialType = Renderer2DDefaultMaterialType.Lit; |
|
|
|
[SerializeField, Reload("Runtime/Materials/Sprite-Lit-Default.mat")] |
|
Material m_DefaultCustomMaterial = null; |
|
|
|
[SerializeField, Reload("Runtime/Materials/Sprite-Lit-Default.mat")] |
|
Material m_DefaultLitMaterial = null; |
|
|
|
[SerializeField, Reload("Runtime/Materials/Sprite-Unlit-Default.mat")] |
|
Material m_DefaultUnlitMaterial = null; |
|
|
|
[SerializeField, Reload("Runtime/Materials/SpriteMask-Default.mat")] |
|
Material m_DefaultMaskMaterial = null; |
|
|
|
internal override Shader GetDefaultShader() |
|
{ |
|
return Shader.Find("Universal Render Pipeline/2D/Sprite-Lit-Default"); |
|
} |
|
|
|
internal override Material GetDefaultMaterial(DefaultMaterialType materialType) |
|
{ |
|
if (materialType == DefaultMaterialType.Sprite || materialType == DefaultMaterialType.Particle) |
|
{ |
|
if (m_DefaultMaterialType == Renderer2DDefaultMaterialType.Lit) |
|
return m_DefaultLitMaterial; |
|
else if (m_DefaultMaterialType == Renderer2DDefaultMaterialType.Unlit) |
|
return m_DefaultUnlitMaterial; |
|
else |
|
return m_DefaultCustomMaterial; |
|
} |
|
if (materialType == DefaultMaterialType.SpriteMask) |
|
{ |
|
return m_DefaultMaskMaterial; |
|
} |
|
|
|
return null; |
|
} |
|
|
|
private void OnEnableInEditor() |
|
{ |
|
// Provide a list of suggested texture property names to Sprite Editor via EditorPrefs. |
|
const string suggestedNamesKey = "SecondarySpriteTexturePropertyNames"; |
|
const string maskTex = "_MaskTex"; |
|
const string normalMap = "_NormalMap"; |
|
string suggestedNamesPrefs = EditorPrefs.GetString(suggestedNamesKey); |
|
|
|
if (string.IsNullOrEmpty(suggestedNamesPrefs)) |
|
EditorPrefs.SetString(suggestedNamesKey, maskTex + "," + normalMap); |
|
else |
|
{ |
|
if (!suggestedNamesPrefs.Contains(maskTex)) |
|
suggestedNamesPrefs += ("," + maskTex); |
|
|
|
if (!suggestedNamesPrefs.Contains(normalMap)) |
|
suggestedNamesPrefs += ("," + normalMap); |
|
|
|
EditorPrefs.SetString(suggestedNamesKey, suggestedNamesPrefs); |
|
} |
|
|
|
ReloadAllNullProperties(); |
|
} |
|
|
|
private void ReloadAllNullProperties() |
|
{ |
|
ResourceReloader.TryReloadAllNullIn(this, UniversalRenderPipelineAsset.packagePath); |
|
} |
|
|
|
private void Awake() |
|
{ |
|
if (m_LightBlendStyles != null) |
|
{ |
|
for (int i = 0; i < m_LightBlendStyles.Length; ++i) |
|
{ |
|
ref var blendStyle = ref m_LightBlendStyles[i]; |
|
|
|
// Custom blend mode (99) now falls back to Multiply. |
|
if ((int)blendStyle.blendMode == 99) |
|
blendStyle.blendMode = Light2DBlendStyle.BlendMode.Multiply; |
|
} |
|
|
|
return; |
|
} |
|
|
|
m_LightBlendStyles = new Light2DBlendStyle[4]; |
|
|
|
m_LightBlendStyles[0].name = "Multiply"; |
|
m_LightBlendStyles[0].blendMode = Light2DBlendStyle.BlendMode.Multiply; |
|
|
|
m_LightBlendStyles[1].name = "Additive"; |
|
m_LightBlendStyles[1].blendMode = Light2DBlendStyle.BlendMode.Additive; |
|
|
|
m_LightBlendStyles[2].name = "Multiply with Mask"; |
|
m_LightBlendStyles[2].blendMode = Light2DBlendStyle.BlendMode.Multiply; |
|
m_LightBlendStyles[2].maskTextureChannel = Light2DBlendStyle.TextureChannel.R; |
|
|
|
m_LightBlendStyles[3].name = "Additive with Mask"; |
|
m_LightBlendStyles[3].blendMode = Light2DBlendStyle.BlendMode.Additive; |
|
m_LightBlendStyles[3].maskTextureChannel = Light2DBlendStyle.TextureChannel.R; |
|
} |
|
|
|
#endif |
|
} |
|
}
|
|
|