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);
|
||||
}
|
||||
}
|
||||
}
|
11
Convention/[Runtime]/Camera/CameraInitializer.cs.meta
Normal file
11
Convention/[Runtime]/Camera/CameraInitializer.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 20656b3ea2f18ff4cafeb3e072d97e01
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Reference in New Issue
Block a user