Files
Convention-Unity-Demo/Assets/Scripts/Environment/WorldLightObject.cs
2025-12-15 17:20:55 +08:00

39 lines
1.2 KiB
C#

using Convention;
using Demo.Game.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<WorldLightObject>();
}
[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();
}
}
}