打开窗口框架
This commit is contained in:
@@ -10,6 +10,12 @@ namespace CreatGame.AssetBundle
|
|||||||
{
|
{
|
||||||
public class AssetBundleManager : Singleton<AssetBundleManager>
|
public class AssetBundleManager : Singleton<AssetBundleManager>
|
||||||
{
|
{
|
||||||
|
private class AssetBundleData
|
||||||
|
{
|
||||||
|
public string assetBundleName;
|
||||||
|
public GameObject assetBundle;
|
||||||
|
}
|
||||||
|
private Dictionary<string, AssetBundleData> assetBundles;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否初始化完成
|
/// 是否初始化完成
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -20,6 +26,7 @@ namespace CreatGame.AssetBundle
|
|||||||
public AssetBundleManager()
|
public AssetBundleManager()
|
||||||
{
|
{
|
||||||
IsInitializeAsync = false;
|
IsInitializeAsync = false;
|
||||||
|
assetBundles = new Dictionary<string, AssetBundleData>();
|
||||||
Addressables.InitializeAsync();
|
Addressables.InitializeAsync();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,11 +74,18 @@ namespace CreatGame.AssetBundle
|
|||||||
|
|
||||||
public void LoadGameObject(string assetBundleName, Action<GameObject> callback)
|
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) =>
|
Addressables.LoadAssetAsync<GameObject>(assetBundleName).Completed += (handle) =>
|
||||||
{
|
{
|
||||||
if (handle.Status == AsyncOperationStatus.Succeeded)
|
if (handle.Status == AsyncOperationStatus.Succeeded)
|
||||||
{
|
{
|
||||||
var asset = handle.Result;
|
var asset = handle.Result;
|
||||||
|
assetBundles.Add(assetBundleName, new AssetBundleData { assetBundleName = assetBundleName, assetBundle = asset });
|
||||||
callback?.Invoke(GameObject.Instantiate(asset));
|
callback?.Invoke(GameObject.Instantiate(asset));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ namespace CreatGame.UI
|
|||||||
|
|
||||||
foreach (var layer in Enum.GetValues(typeof(UILayer)))
|
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.SetParent(m_UIRoot.transform);
|
||||||
layerObj.transform.localScale = Vector3.one;
|
layerObj.transform.localScale = Vector3.one;
|
||||||
layerObj.transform.localPosition = Vector3.zero;
|
layerObj.transform.localPosition = Vector3.zero;
|
||||||
@@ -68,8 +68,28 @@ namespace CreatGame.UI
|
|||||||
obj.transform.localScale = Vector3.one;
|
obj.transform.localScale = Vector3.one;
|
||||||
}
|
}
|
||||||
view.InitView();
|
view.InitView();
|
||||||
|
|
||||||
|
if (m_Windows.ContainsKey(layer) == false)
|
||||||
|
{
|
||||||
|
m_Windows.Add(layer, new Queue<UIViewBase>());
|
||||||
|
}
|
||||||
|
|
||||||
|
m_Windows[layer].Enqueue(view);
|
||||||
});
|
});
|
||||||
|
|
||||||
return 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>
|
/// </summary>
|
||||||
public virtual void CloseView()
|
public virtual void CloseView()
|
||||||
{
|
{
|
||||||
|
GameObject.Destroy(m_ViewObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected GameObject GetGameObject(string name)
|
protected GameObject GetGameObject(string name)
|
||||||
|
|||||||
Reference in New Issue
Block a user