打开窗口框架
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42,7 +42,7 @@ namespace CreatGame.UI
|
||||
/// </summary>
|
||||
public virtual void CloseView()
|
||||
{
|
||||
|
||||
GameObject.Destroy(m_ViewObject);
|
||||
}
|
||||
|
||||
protected GameObject GetGameObject(string name)
|
||||
|
||||
Reference in New Issue
Block a user