You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
/******************************************************************************/
|
|
|
|
|
/*
|
|
|
|
|
Project - MudBun
|
|
|
|
|
Publisher - Long Bunny Labs
|
|
|
|
|
http://LongBunnyLabs.com
|
|
|
|
|
Author - Ming-Lun "Allen" Chou
|
|
|
|
|
http://AllenChou.net
|
|
|
|
|
*/
|
|
|
|
|
/******************************************************************************/
|
|
|
|
|
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace MudBun
|
|
|
|
|
{
|
|
|
|
|
public class MudSharedMaterialBase : ScriptableObject
|
|
|
|
|
{
|
|
|
|
|
public delegate void SharedMaterialChanged(Object material);
|
|
|
|
|
public static event SharedMaterialChanged OnSharedMaterialChanged;
|
|
|
|
|
|
|
|
|
|
public Color Color = Color.white;
|
|
|
|
|
public Color Emission = Color.black;
|
|
|
|
|
[Range(0.0f, 1.0f)] public float Metallic = 0.0f;
|
|
|
|
|
[Range(0.0f, 1.0f)] public float Smoothness = 0.5f;
|
|
|
|
|
[Range(0, 3)] public int TextureIndex = 0;
|
|
|
|
|
[Range(0.0f, 5.0f)] public float SplatSize = 1.0f;
|
|
|
|
|
[Range(0.0f, 1.0f)] public float BlendTightness = 0.0f;
|
|
|
|
|
|
|
|
|
|
[SerializeField] [HideInInspector] private int m_materialHash = -1;
|
|
|
|
|
public int MaterialHash => m_materialHash;
|
|
|
|
|
|
|
|
|
|
private void OnEnable()
|
|
|
|
|
{
|
|
|
|
|
MarkDirty();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void OnValidate()
|
|
|
|
|
{
|
|
|
|
|
Validate.Saturate(ref Metallic);
|
|
|
|
|
Validate.Saturate(ref Smoothness);
|
|
|
|
|
Validate.Saturate(ref BlendTightness);
|
|
|
|
|
|
|
|
|
|
MarkDirty();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void MarkDirty()
|
|
|
|
|
{
|
|
|
|
|
m_materialHash = Codec.Hash(this);
|
|
|
|
|
|
|
|
|
|
OnSharedMaterialChanged?.Invoke(this);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|