BS 0.2.0 UI控件同步 / EP Unity.1 Diagram版本下的附属增强提案
This commit is contained in:
43
Convention/[Runtime]/Camera/CameraInitializer.cs
Normal file
43
Convention/[Runtime]/Camera/CameraInitializer.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Convention
|
||||
{
|
||||
[RequireComponent(typeof(Camera))]
|
||||
public class CameraInitializer : MonoBehaviour
|
||||
{
|
||||
[Setting, SerializeField] private List<SO.CameraInitializerConfig> Configs = new();
|
||||
|
||||
public void InitializeImmediate()
|
||||
{
|
||||
var camera = GetComponent<Camera>();
|
||||
foreach (var config in Configs)
|
||||
{
|
||||
config.Invoke(camera);
|
||||
}
|
||||
DestroyImmediate(this);
|
||||
}
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
InitializeImmediate();
|
||||
}
|
||||
|
||||
public static void InitializeImmediate(GameObject target)
|
||||
{
|
||||
if (target.GetComponents<CameraInitializer>().Length != 0)
|
||||
{
|
||||
foreach(var initer in target.GetComponents<CameraInitializer>())
|
||||
initer.InitializeImmediate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
namespace SO
|
||||
{
|
||||
public abstract class CameraInitializerConfig : ScriptableObject
|
||||
{
|
||||
public abstract void Invoke(Camera camera);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user