Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,76 @@
|
|||
// When enabled, allows setting the material by dropping a material onto the MeshRenderer inspector component.
|
||||
// The drawback is that the MeshRenderer inspector will not have properties for light probes, so if you need light probe support, do not enable this.
|
||||
//#define ALLOW_MESHRENDERER_MATERIAL_DRAG_N_DROP
|
||||
|
||||
using UnityEngine;
|
||||
using UnityEditor;
|
||||
using System.Collections;
|
||||
|
||||
|
||||
namespace TMPro.EditorUtilities
|
||||
{
|
||||
// Disabled for compatibility reason as lightprobe setup isn't supported due to inability to inherit from MeshRendererEditor class
|
||||
#if ALLOW_MESHRENDERER_MATERIAL_DRAG_N_DROP
|
||||
[CanEditMultipleObjects]
|
||||
[CustomEditor(typeof(MeshRenderer))]
|
||||
public class TMP_MeshRendererEditor : Editor
|
||||
{
|
||||
private SerializedProperty m_Materials;
|
||||
|
||||
void OnEnable()
|
||||
{
|
||||
m_Materials = serializedObject.FindProperty("m_Materials");
|
||||
}
|
||||
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
// Get a reference to the current material.
|
||||
SerializedProperty material_prop = m_Materials.GetArrayElementAtIndex(0);
|
||||
Material currentMaterial = material_prop.objectReferenceValue as Material;
|
||||
|
||||
EditorGUI.BeginChangeCheck();
|
||||
base.OnInspectorGUI();
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
material_prop = m_Materials.GetArrayElementAtIndex(0);
|
||||
|
||||
TMP_FontAsset newFontAsset = null;
|
||||
Material newMaterial = null;
|
||||
|
||||
if (material_prop != null)
|
||||
newMaterial = material_prop.objectReferenceValue as Material;
|
||||
|
||||
// Check if the new material is referencing a different font atlas texture.
|
||||
if (newMaterial != null && currentMaterial.GetInstanceID() != newMaterial.GetInstanceID())
|
||||
{
|
||||
// Search for the Font Asset matching the new font atlas texture.
|
||||
newFontAsset = TMP_EditorUtility.FindMatchingFontAsset(newMaterial);
|
||||
}
|
||||
|
||||
|
||||
GameObject[] objects = Selection.gameObjects;
|
||||
|
||||
for (int i = 0; i < objects.Length; i++)
|
||||
{
|
||||
// Assign new font asset
|
||||
if (newFontAsset != null)
|
||||
{
|
||||
TMP_Text textComponent = objects[i].GetComponent<TMP_Text>();
|
||||
|
||||
if (textComponent != null)
|
||||
{
|
||||
Undo.RecordObject(textComponent, "Font Asset Change");
|
||||
textComponent.font = newFontAsset;
|
||||
}
|
||||
}
|
||||
|
||||
TMPro_EventManager.ON_DRAG_AND_DROP_MATERIAL_CHANGED(objects[i], currentMaterial, newMaterial);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue