diff options
| author | Weicao-CatilGrass <1992414357@qq.com> | 2026-05-30 19:35:16 +0800 |
|---|---|---|
| committer | Weicao-CatilGrass <1992414357@qq.com> | 2026-05-30 19:35:16 +0800 |
| commit | 7735b716401f630697d5b02910d50dbf8f3416af (patch) | |
| tree | 52d23e7e0434a569bbafdfca6ad196e3ef24af3f /Assets/Scripts/FragmentRequire.cs | |
| parent | 4408cc53e044a9c649572991a764f46d247c67bf (diff) | |
正在编写动态场景加载
Diffstat (limited to 'Assets/Scripts/FragmentRequire.cs')
| -rw-r--r-- | Assets/Scripts/FragmentRequire.cs | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/Assets/Scripts/FragmentRequire.cs b/Assets/Scripts/FragmentRequire.cs new file mode 100644 index 0000000..71ce602 --- /dev/null +++ b/Assets/Scripts/FragmentRequire.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using UnityEditor; +using UnityEngine; +using UnityEngine.SceneManagement; + +[RequireComponent(typeof(BoxCollider))] +[ExecuteAlways] +public class FragmentRequire : MonoBehaviour +{ + public List<SceneAsset> requiredScenes = new(); + + private BoxCollider _boxCollider; + + private void Awake() + { + _boxCollider = GetComponent<BoxCollider>(); + _boxCollider.isTrigger = true; + } + + private void OnTriggerEnter(Collider other) + { + var sceneName = new List<string>(); + foreach (SceneAsset sceneAsset in requiredScenes) + sceneName.Add(sceneAsset.name); + FragmentManager.UpdateSceneRequirements(sceneName); + } + + private void Update() + { + _boxCollider.size = Vector3.one; + } + + private void OnDrawGizmos() + { + if (_boxCollider == null) return; + + var cs = _boxCollider.size; + var ts = Vector3.one; + var size = new Vector3(cs.x * ts.x, cs.y * ts.y, cs.z * ts.z); + + Gizmos.color = new Color(1f, 0.18f, 0.29f, 0.5f); + Gizmos.matrix = transform.localToWorldMatrix; + Gizmos.DrawCube(_boxCollider.center, size); + } +} |
