using Convention; using Demo.Attr; using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Demo.Game { [Scriptable] public class WorldLightObject : ScriptableObject { public static WorldLightObject Make() { return new GameObject().AddComponent(); } [Content, SerializeField] private Vector3 LastPosition = Vector3.zero; [Content, SerializeField] private Quaternion LastRotation = Quaternion.identity; public override void ResetEnterGameStatus() { base.ResetEnterGameStatus(); var light = GetRoot().RootGameController.GlobalLight; LastPosition = light.localPosition; LastRotation = light.localRotation; light.SetParent(transform); light.SetPositionAndRotation(Vector3.zero, Quaternion.identity); } public override IEnumerator UnloadScript() { var light = GetRoot().RootGameController.GlobalLight; light.SetParent(GetRoot().RootGameController.transform); light.SetPositionAndRotation(LastPosition, LastRotation); yield return base.UnloadScript(); } } }