From 6c66a5c515dcbb9a281bd72f50109db4b17487e7 Mon Sep 17 00:00:00 2001 From: ninemine <1371605831@qq.com> Date: Fri, 19 Dec 2025 17:33:20 +0800 Subject: [PATCH] =?UTF-8?q?SubWorld=E4=B8=8ELookAtAnchor=20Config=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Framework/SubWorld.cs | 2 ++ Assets/Scripts/LookAtAnchor.cs | 32 ++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/Assets/Scripts/Framework/SubWorld.cs b/Assets/Scripts/Framework/SubWorld.cs index bd6269c..ab5feec 100644 --- a/Assets/Scripts/Framework/SubWorld.cs +++ b/Assets/Scripts/Framework/SubWorld.cs @@ -46,6 +46,8 @@ namespace Demo.Game protected override IEnumerator DoSomethingDuringApplyScript() { yield return base.DoSomethingDuringApplyScript(); + if (string.IsNullOrEmpty(GetConfig().project)) + yield break; var ir = SceneManager.LoadSceneAsync(Editor.EditorController.SceneName, LoadSceneMode.Additive); ir.completed += x => { diff --git a/Assets/Scripts/LookAtAnchor.cs b/Assets/Scripts/LookAtAnchor.cs index 1f96e2f..c6e0044 100644 --- a/Assets/Scripts/LookAtAnchor.cs +++ b/Assets/Scripts/LookAtAnchor.cs @@ -1,10 +1,30 @@ using Convention; using Demo.Game.Attr; using Demo.Game.ConfigType; +using System.IO; using UnityEngine; namespace Demo.Game { + namespace ConfigType + { + public class LookAtAnchorConfig : UpdatementIntConfig + { + [Content] public bool IsEnableUpdateEveryTick = false; + public override void Deserialize(BinaryReader reader) + { + IsEnableUpdateEveryTick = BinarySerializeUtility.ReadBool(reader); + base.Deserialize(reader); + } + + public override void Serialize(BinaryWriter writer) + { + BinarySerializeUtility.WriteBool(writer, IsEnableUpdateEveryTick); + base.Serialize(writer); + } + } + } + [Scriptable] public class LookAtAnchor : Updatement { @@ -22,15 +42,19 @@ namespace Demo.Game return begin; } - [Content] public int LookAtObject; - [Content] public bool IsEnableUpdateEveryTick = false; + public int LookAtObjectCache; + public bool IsEnableUpdateEveryTick + { + get => GetConfig().IsEnableUpdateEveryTick; + set => GetConfig().IsEnableUpdateEveryTick = value; + } protected override void UpdateData(int data) { ScriptableObject target = GetRoot().FindWithIndex(data); - if (data != LookAtObject) + if (data != LookAtObjectCache) { - LookAtObject = data; + LookAtObjectCache = data; if (target != null) transform.LookAt(target.transform); }