using System.Collections; using System.Collections.Generic; using Convention; using UnityEngine; namespace Demo.Game { 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 IEnumerator LoadScript(string script) { yield return base.LoadScript(script); 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(); } } }