Files
BlueArchiveMiniGame/Assets/Scripts/Test/Light/New/ShadowUtils.cs

42 lines
1.3 KiB
C#
Raw Normal View History

2025-10-15 20:13:48 +08:00
using UnityEngine;
using System.Collections.Generic;
using System.Linq;
public static class ShadowUtils
{
public static Light FindMainLight()
{
Light[] lights = Object.FindObjectsOfType<Light>();
return lights.FirstOrDefault(l => l.type == LightType.Directional && l.enabled) ??
lights.FirstOrDefault(l => l.type == LightType.Spot && l.enabled);
}
public static Transform FindMainWall()
{
var walls = Object.FindObjectsOfType<Collider>()
.Where(c => c is BoxCollider)
.OrderByDescending(c =>
{
var box = c as BoxCollider;
var size = Vector3.Scale(box.size, c.transform.lossyScale);
return size.x * size.y;
});
return walls.FirstOrDefault()?.transform;
}
public static List<GameObject> FindObjectsInLayer(string layerName)
{
int layer = LayerMask.NameToLayer(layerName);
return Object.FindObjectsOfType<GameObject>()
.Where(obj => obj.activeInHierarchy && obj.layer == layer)
.ToList();
}
public static List<GameObject> FindObjectsInLayer(int layer)
{
return Object.FindObjectsOfType<GameObject>()
.Where(obj => obj.activeInHierarchy && obj.layer == layer)
.ToList();
}
}