Add editor script
parent
3a40062e2c
commit
a39f20861c
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f479867169fb04929b98c38e646b83c5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -0,0 +1,70 @@
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.UI;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace Coffee.UIExtensions
|
||||||
|
{
|
||||||
|
[CustomEditor(typeof(UIParticle))]
|
||||||
|
[CanEditMultipleObjects]
|
||||||
|
public class UIParticleEditor : GraphicEditor
|
||||||
|
{
|
||||||
|
//################################
|
||||||
|
// Constant or Static Members.
|
||||||
|
//################################
|
||||||
|
static readonly GUIContent contentParticleMaterial = new GUIContent("Particle Material", "The material for rendering particles");
|
||||||
|
static readonly GUIContent contentTrailMaterial = new GUIContent("Trail Material", "The material for rendering particle trails");
|
||||||
|
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Public/Protected Members.
|
||||||
|
//################################
|
||||||
|
/// <summary>
|
||||||
|
/// This function is called when the object becomes enabled and active.
|
||||||
|
/// </summary>
|
||||||
|
protected override void OnEnable()
|
||||||
|
{
|
||||||
|
base.OnEnable();
|
||||||
|
_spParticleSystem = serializedObject.FindProperty("m_ParticleSystem");
|
||||||
|
_spTrailParticle = serializedObject.FindProperty("m_TrailParticle");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Implement this function to make a custom inspector.
|
||||||
|
/// </summary>
|
||||||
|
public override void OnInspectorGUI()
|
||||||
|
{
|
||||||
|
serializedObject.Update();
|
||||||
|
|
||||||
|
EditorGUILayout.PropertyField(_spParticleSystem);
|
||||||
|
EditorGUI.indentLevel++;
|
||||||
|
var ps = _spParticleSystem.objectReferenceValue as ParticleSystem;
|
||||||
|
if (ps)
|
||||||
|
{
|
||||||
|
var pr = ps.GetComponent<ParticleSystemRenderer>();
|
||||||
|
var sp = new SerializedObject(pr).FindProperty("m_Materials");
|
||||||
|
|
||||||
|
EditorGUILayout.PropertyField(sp.GetArrayElementAtIndex(0), contentParticleMaterial);
|
||||||
|
EditorGUILayout.PropertyField(sp.GetArrayElementAtIndex(1), contentTrailMaterial);
|
||||||
|
sp.serializedObject.ApplyModifiedProperties();
|
||||||
|
|
||||||
|
if(!Application.isPlaying && pr.enabled)
|
||||||
|
{
|
||||||
|
EditorGUILayout.HelpBox("ParticleSystemRenderer will be disable on playing.", MessageType.Info);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EditorGUI.indentLevel--;
|
||||||
|
|
||||||
|
EditorGUI.BeginDisabledGroup(true);
|
||||||
|
EditorGUILayout.PropertyField(_spTrailParticle);
|
||||||
|
EditorGUI.EndDisabledGroup();
|
||||||
|
|
||||||
|
serializedObject.ApplyModifiedProperties();
|
||||||
|
}
|
||||||
|
|
||||||
|
//################################
|
||||||
|
// Private Members.
|
||||||
|
//################################
|
||||||
|
SerializedProperty _spParticleSystem;
|
||||||
|
SerializedProperty _spTrailParticle;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 37cdd12f98487483aba53394d2174e31
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
Loading…
Reference in New Issue