Files
Convention-Unity-Demo/Assets/Scripts/Environment/WorldLightObject.cs

37 lines
1.2 KiB
C#
Raw Normal View History

2025-09-25 19:04:05 +08:00
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<WorldLightObject>();
}
[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();
}
}
}