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

37 lines
1.2 KiB
C#

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 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();
}
}
}