时间线物体tab已更改为手动显示
This commit is contained in:
@@ -43,13 +43,14 @@ namespace Demo
|
|||||||
public Vector3 EnterGameLocalPosition, EnterGameEulerAngles, EnterGameLocalScaling;
|
public Vector3 EnterGameLocalPosition, EnterGameEulerAngles, EnterGameLocalScaling;
|
||||||
public bool IsSetObjectDisable;
|
public bool IsSetObjectDisable;
|
||||||
public int UpdatePerFrame;
|
public int UpdatePerFrame;
|
||||||
|
public int ScriptUpdateCounter;
|
||||||
public string ScriptName;
|
public string ScriptName;
|
||||||
private string[] ChildTypes;
|
private string[] ChildTypes;
|
||||||
public ScriptLoadableConfig[] childs;
|
public ScriptLoadableConfig[] childs;
|
||||||
|
|
||||||
public readonly static Dictionary<string, Func<ScriptLoadableConfig>> ConfigGeneraters = new()
|
public readonly static Dictionary<string, Func<ScriptLoadableConfig>> ConfigGeneraters = new()
|
||||||
{
|
{
|
||||||
{ nameof(ScriptLoadableConfig), ()=>new ScriptLoadableConfig() }
|
{ nameof(ScriptLoadableConfig), ()=>new ScriptLoadableConfig() },
|
||||||
};
|
};
|
||||||
|
|
||||||
public virtual void Deserialize(BinaryReader reader)
|
public virtual void Deserialize(BinaryReader reader)
|
||||||
@@ -59,6 +60,7 @@ namespace Demo
|
|||||||
EnterGameLocalScaling = BinarySerializeUtility.ReadVec3(reader);
|
EnterGameLocalScaling = BinarySerializeUtility.ReadVec3(reader);
|
||||||
IsSetObjectDisable = BinarySerializeUtility.ReadBool(reader);
|
IsSetObjectDisable = BinarySerializeUtility.ReadBool(reader);
|
||||||
UpdatePerFrame = BinarySerializeUtility.ReadInt(reader);
|
UpdatePerFrame = BinarySerializeUtility.ReadInt(reader);
|
||||||
|
ScriptUpdateCounter = BinarySerializeUtility.ReadInt(reader);
|
||||||
ScriptName = BinarySerializeUtility.ReadString(reader);
|
ScriptName = BinarySerializeUtility.ReadString(reader);
|
||||||
ChildTypes = BinarySerializeUtility.DeserializeStringArray(reader);
|
ChildTypes = BinarySerializeUtility.DeserializeStringArray(reader);
|
||||||
int childCount = ChildTypes.Length;
|
int childCount = ChildTypes.Length;
|
||||||
@@ -76,6 +78,7 @@ namespace Demo
|
|||||||
BinarySerializeUtility.WriteVec3(writer, EnterGameLocalScaling);
|
BinarySerializeUtility.WriteVec3(writer, EnterGameLocalScaling);
|
||||||
BinarySerializeUtility.WriteBool(writer, IsSetObjectDisable);
|
BinarySerializeUtility.WriteBool(writer, IsSetObjectDisable);
|
||||||
BinarySerializeUtility.WriteInt(writer, UpdatePerFrame);
|
BinarySerializeUtility.WriteInt(writer, UpdatePerFrame);
|
||||||
|
BinarySerializeUtility.WriteInt(writer, ScriptUpdateCounter);
|
||||||
BinarySerializeUtility.WriteString(writer, ScriptName);
|
BinarySerializeUtility.WriteString(writer, ScriptName);
|
||||||
BinarySerializeUtility.SerializeArray(writer, ChildTypes);
|
BinarySerializeUtility.SerializeArray(writer, ChildTypes);
|
||||||
foreach (var child in childs)
|
foreach (var child in childs)
|
||||||
@@ -777,31 +780,28 @@ namespace Demo
|
|||||||
public static PropertiesWindow TimelineWindow;
|
public static PropertiesWindow TimelineWindow;
|
||||||
private PropertiesWindow.ItemEntry MyTimelineEntry;
|
private PropertiesWindow.ItemEntry MyTimelineEntry;
|
||||||
private Editor.UI.TimelineItem MyTimelineItem;
|
private Editor.UI.TimelineItem MyTimelineItem;
|
||||||
//[SerializeField] private bool IsTimelineItemShow = false;
|
|
||||||
private static List<TimelineScriptObject> TimelineScriptObjectWhichOnShow = new();
|
|
||||||
|
|
||||||
private static UnityEngine.UI.Image CacheLastFocusImage;
|
private static UnityEngine.UI.Image CacheLastFocusImage;
|
||||||
private static Color CacheLastFocusImageOriginColor = new(1, 1, 1, 0.01f);
|
private static Color CacheLastFocusImageOriginColor = new(1, 1, 1, 0.01f);
|
||||||
private static Color FocusImageColor = new(1f, 47f / 51f, 0.0156862754f, 0.1f);
|
private static Color FocusImageColor = new(1f, 47f / 51f, 0.0156862754f, 0.1f);
|
||||||
|
|
||||||
[Content, SerializeField] private bool IsEnableTimelineItem = false;
|
public override IEnumerator UnloadScript()
|
||||||
|
|
||||||
[Convention.RScript.Variable.Attr.Method]
|
|
||||||
public void EnableTimelineItem()
|
|
||||||
{
|
{
|
||||||
IsEnableTimelineItem = true;
|
yield return base.UnloadScript();
|
||||||
|
// 这里的两处判空是因为如果抛出错误就会打断了逻辑, 所以这里需要判断
|
||||||
|
if (MyTimelineItem != null)
|
||||||
|
{
|
||||||
|
MyTimelineItem.RawButton.onClick.RemoveAllListeners();
|
||||||
|
MyTimelineItem = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override IEnumerator DoSomethingDuringApplyScript()
|
public override void OnHierarchyItemClick(HierarchyItem item)
|
||||||
{
|
{
|
||||||
yield return base.DoSomethingDuringApplyScript();
|
if (MyTimelineEntry == null)
|
||||||
if (IsEnableTimelineItem)
|
|
||||||
{
|
{
|
||||||
if (MyTimelineEntry == null)
|
MyTimelineEntry = TimelineWindow.CreateRootItemEntries(1)[0];
|
||||||
{
|
MyTimelineItem = MyTimelineEntry.ref_value.GetComponent<Editor.UI.TimelineItem>();
|
||||||
MyTimelineEntry = TimelineWindow.CreateRootItemEntries(1)[0];
|
|
||||||
MyTimelineItem = MyTimelineEntry.ref_value.GetComponent<Editor.UI.TimelineItem>();
|
|
||||||
}
|
|
||||||
MyTimelineItem.title = ScriptName;
|
MyTimelineItem.title = ScriptName;
|
||||||
MyTimelineItem.RawButton.onClick.RemoveAllListeners();
|
MyTimelineItem.RawButton.onClick.RemoveAllListeners();
|
||||||
MyTimelineItem.AddListener(() =>
|
MyTimelineItem.AddListener(() =>
|
||||||
@@ -813,37 +813,20 @@ namespace Demo
|
|||||||
CacheLastFocusImage.color = FocusImageColor;
|
CacheLastFocusImage.color = FocusImageColor;
|
||||||
});
|
});
|
||||||
SetupTimelineItem(MyTimelineItem);
|
SetupTimelineItem(MyTimelineItem);
|
||||||
TimelineScriptObjectWhichOnShow.Add(this);
|
|
||||||
}
|
}
|
||||||
}
|
else if (MyTimelineEntry != null)
|
||||||
|
|
||||||
public override IEnumerator UnloadScript()
|
|
||||||
{
|
|
||||||
yield return base.UnloadScript();
|
|
||||||
// 这里的两处判空是因为如果抛出错误就会打断了逻辑, 所以这里需要判断
|
|
||||||
if (MyTimelineItem != null)
|
|
||||||
{
|
|
||||||
MyTimelineItem.RawButton.onClick.RemoveAllListeners();
|
|
||||||
MyTimelineItem = null;
|
|
||||||
}
|
|
||||||
if (MyTimelineEntry != null)
|
|
||||||
{
|
{
|
||||||
MyTimelineEntry.Release();
|
MyTimelineEntry.Release();
|
||||||
MyTimelineEntry = null;
|
MyTimelineEntry = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void OnHierarchyItemClick(HierarchyItem item)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private float UIResizeOnTimelineCount = 0;
|
private float UIResizeOnTimelineCount = 0;
|
||||||
protected override void UpdateTicks(float currentTime, float deltaTime, TickType tickType)
|
protected override void UpdateTicks(float currentTime, float deltaTime, TickType tickType)
|
||||||
{
|
{
|
||||||
base.UpdateTicks(currentTime, deltaTime, tickType);
|
base.UpdateTicks(currentTime, deltaTime, tickType);
|
||||||
// 存在严重的性能开销, 在解决之前将不会允许其快速自动更新
|
// 存在严重的性能开销, 在解决之前将不会允许其快速自动更新
|
||||||
if (IsEnableTimelineItem)
|
if (MyTimelineEntry != null)
|
||||||
{
|
{
|
||||||
if (UIResizeOnTimelineCount > 0.1 || tickType != TickType.Update)
|
if (UIResizeOnTimelineCount > 0.1 || tickType != TickType.Update)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user