Initial Commit
This commit is contained in:
parent
53eb92e9af
commit
270ab7d11f
15341 changed files with 700234 additions and 0 deletions
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Timeline;
|
||||
|
||||
namespace UnityEditor.Timeline
|
||||
{
|
||||
[CustomPropertyDrawer(typeof(TimeFieldAttribute), true)]
|
||||
class TimeFieldDrawer : PropertyDrawer
|
||||
{
|
||||
static WindowState state
|
||||
{
|
||||
get { return TimelineWindow.instance != null ? TimelineWindow.instance.state : null; }
|
||||
}
|
||||
|
||||
static float currentFrameRate
|
||||
{
|
||||
get { return state != null ? TimelineWindow.instance.state.referenceSequence.frameRate : 0.0f; }
|
||||
}
|
||||
|
||||
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
if (property.propertyType != SerializedPropertyType.Float)
|
||||
{
|
||||
GUILayout.Label("TimeField only works on floating point types");
|
||||
return;
|
||||
}
|
||||
|
||||
var timeFieldAttribute = attribute as TimeFieldAttribute;
|
||||
if (timeFieldAttribute == null)
|
||||
return;
|
||||
|
||||
var rect = EditorGUILayout.s_LastRect;
|
||||
EditorGUI.BeginChangeCheck();
|
||||
|
||||
if (timeFieldAttribute.useEditMode == TimeFieldAttribute.UseEditMode.ApplyEditMode)
|
||||
TimeFieldWithEditMode(rect, property, label);
|
||||
else
|
||||
TimeField(rect, property, label);
|
||||
|
||||
if (EditorGUI.EndChangeCheck())
|
||||
{
|
||||
if (state != null)
|
||||
state.Refresh();
|
||||
}
|
||||
}
|
||||
|
||||
static void TimeField(Rect rect, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
var evt1 = InputEvent.None;
|
||||
TimelineInspectorUtility.TimeField(rect, property, label, false, currentFrameRate, 0, float.MaxValue, ref evt1);
|
||||
}
|
||||
|
||||
static void TimeFieldWithEditMode(Rect rect, SerializedProperty property, GUIContent label)
|
||||
{
|
||||
double minStartTime;
|
||||
if (property.hasMultipleDifferentValues)
|
||||
minStartTime = SelectionManager.SelectedItems().Min(i => i.start);
|
||||
else
|
||||
minStartTime = property.doubleValue;
|
||||
|
||||
var evt = InputEvent.None;
|
||||
var newValue = TimelineInspectorUtility.TimeField(
|
||||
rect, label, minStartTime, false, property.hasMultipleDifferentValues, currentFrameRate, 0.0, float.MaxValue, ref evt);
|
||||
|
||||
EditMode.inputHandler.ProcessMove(evt, newValue);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue