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