打开窗口框架

This commit is contained in:
2025-07-17 09:52:33 +08:00
parent aae0f8bc17
commit 4c24a6b18a
3 changed files with 36 additions and 2 deletions

View File

@@ -10,6 +10,12 @@ namespace CreatGame.AssetBundle
{
public class AssetBundleManager : Singleton<AssetBundleManager>
{
private class AssetBundleData
{
public string assetBundleName;
public GameObject assetBundle;
}
private Dictionary<string, AssetBundleData> assetBundles;
/// <summary>
/// 是否初始化完成
/// </summary>
@@ -20,6 +26,7 @@ namespace CreatGame.AssetBundle
public AssetBundleManager()
{
IsInitializeAsync = false;
assetBundles = new Dictionary<string, AssetBundleData>();
Addressables.InitializeAsync();
}
@@ -67,11 +74,18 @@ namespace CreatGame.AssetBundle
public void LoadGameObject(string assetBundleName, Action<GameObject> callback)
{
if (assetBundles.TryGetValue(assetBundleName, out var bundle))
{
callback.Invoke(GameObject.Instantiate(bundle.assetBundle));
return;
}
Addressables.LoadAssetAsync<GameObject>(assetBundleName).Completed += (handle) =>
{
if (handle.Status == AsyncOperationStatus.Succeeded)
{
var asset = handle.Result;
assetBundles.Add(assetBundleName, new AssetBundleData { assetBundleName = assetBundleName, assetBundle = asset });
callback?.Invoke(GameObject.Instantiate(asset));
}
else

View File

@@ -33,7 +33,7 @@ namespace CreatGame.UI
foreach (var layer in Enum.GetValues(typeof(UILayer)))
{
var layerObj = new GameObject(Enum.GetName(typeof(UILayer), layer));
var layerObj = m_UIRoot.transform.Find(Enum.GetName(typeof(UILayer), layer)).gameObject;
layerObj.transform.SetParent(m_UIRoot.transform);
layerObj.transform.localScale = Vector3.one;
layerObj.transform.localPosition = Vector3.zero;
@@ -68,8 +68,28 @@ namespace CreatGame.UI
obj.transform.localScale = Vector3.one;
}
view.InitView();
if (m_Windows.ContainsKey(layer) == false)
{
m_Windows.Add(layer, new Queue<UIViewBase>());
}
m_Windows[layer].Enqueue(view);
});
return view;
}
/// <summary>
///
/// </summary>
/// <param name="layer"></param>
public void CloseView(UILayer layer)
{
if (m_Windows.ContainsKey(layer))
{
var view = m_Windows[layer].Dequeue();
view.CloseView();
}
}
}
}

View File

@@ -42,7 +42,7 @@ namespace CreatGame.UI
/// </summary>
public virtual void CloseView()
{
GameObject.Destroy(m_ViewObject);
}
protected GameObject GetGameObject(string name)