00修改
This commit is contained in:
@@ -1,3 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 4596f376175f453ebfb7d31c31b3e9bc
|
|
||||||
timeCreated: 1739759528
|
|
||||||
@@ -1,203 +0,0 @@
|
|||||||
// using System;
|
|
||||||
// using System.Collections.Generic;
|
|
||||||
// using System.Linq;
|
|
||||||
// using System.Threading.Tasks;
|
|
||||||
// using UnityEngine;
|
|
||||||
// using UnityEngine.AddressableAssets;
|
|
||||||
// using UnityEngine.ResourceManagement.AsyncOperations;
|
|
||||||
// using UnityEngine.ResourceManagement.ResourceProviders;
|
|
||||||
// using UnityEngine.SceneManagement;
|
|
||||||
// using Stary.Evo;
|
|
||||||
//
|
|
||||||
// public class AddressableLoad : Singleton<AddressableLoad>
|
|
||||||
// {
|
|
||||||
// private Dictionary<string, AsyncOperationHandle> nameCaches = new Dictionary<string, AsyncOperationHandle>();
|
|
||||||
// private AsyncOperationHandle ScenesHandle; //当前场景的Addressable Handle
|
|
||||||
//
|
|
||||||
//
|
|
||||||
// /// <summary>
|
|
||||||
// ///异步读取指定的Addressable类型的数据
|
|
||||||
// /// </summary>
|
|
||||||
// /// <param name="addressName"></param>
|
|
||||||
// /// <param name="onComplete">执行成功的回调</param>
|
|
||||||
// /// <param name="onFailed">执行失败的回调</param>
|
|
||||||
// /// <param name="address">路径</param>
|
|
||||||
// public async Task<T> LoadAssetASync<T>(string addressName) where T : UnityEngine.Object
|
|
||||||
// {
|
|
||||||
// try
|
|
||||||
// {
|
|
||||||
// if (nameCaches.TryGetValue(addressName, out var existingHandle))
|
|
||||||
// {
|
|
||||||
// await existingHandle.Task;
|
|
||||||
// if (existingHandle.Status == AsyncOperationStatus.Succeeded)
|
|
||||||
// {
|
|
||||||
// var result = (T)existingHandle.Result;
|
|
||||||
// return result;
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// nameCaches.Remove(addressName);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// var handle = Addressables.LoadAssetAsync<T>(addressName);
|
|
||||||
// nameCaches.Add(addressName, handle);
|
|
||||||
// await handle.Task;
|
|
||||||
// return handle.Result;
|
|
||||||
// }
|
|
||||||
// catch (Exception e)
|
|
||||||
// {
|
|
||||||
// Debug.LogError($"加载资源失败: 【{addressName}】\n{e.Message}");
|
|
||||||
// return null;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /// <summary>
|
|
||||||
// /// 同步读取指定的Addressable类型的数据
|
|
||||||
// /// </summary>
|
|
||||||
// /// <param name="addressName"></param>
|
|
||||||
// /// <param name="onComplete">执行成功的回调</param>
|
|
||||||
// /// <param name="onFailed">执行失败的回调</param>
|
|
||||||
// /// <param name="address">路径</param>
|
|
||||||
// public void LoadAssetSync<T>(string addressName, Action<T> onComplete, Action onFailed) where T : UnityEngine.Object
|
|
||||||
// {
|
|
||||||
// if (nameCaches.ContainsKey(addressName))
|
|
||||||
// {
|
|
||||||
// var handle = this.nameCaches[addressName];
|
|
||||||
// if (handle.IsDone)
|
|
||||||
// {
|
|
||||||
// if (onComplete != null)
|
|
||||||
// {
|
|
||||||
// onComplete(nameCaches[addressName].Result as T);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// HandleAddCompleted<T>(addressName, handle, onComplete, onFailed);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// var handle = Addressables.LoadAssetAsync<T>(addressName);
|
|
||||||
// HandleAddCompleted<T>(addressName, handle, onComplete, onFailed);
|
|
||||||
// nameCaches.Add(addressName, handle);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /// <summary>
|
|
||||||
// /// 同步读取指定的Addressable类型的场景数据
|
|
||||||
// /// </summary>
|
|
||||||
// public async Task<SceneInstance> LoadSceneAsync(string sceneName, LoadSceneMode mode, Action completeCallBack = null,
|
|
||||||
// bool isActiveOnLoaded = true, int priority = 100)
|
|
||||||
// {
|
|
||||||
// var handle = Addressables.LoadSceneAsync(sceneName, mode, isActiveOnLoaded, priority);
|
|
||||||
//
|
|
||||||
// var res = await handle.Task;
|
|
||||||
//
|
|
||||||
// completeCallBack?.Invoke();
|
|
||||||
//
|
|
||||||
// return res;
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// /// <summary>
|
|
||||||
// /// 读取指定的Addressable类型的名字或标签数据的集合
|
|
||||||
// /// </summary>
|
|
||||||
// /// <param name="address">名字</param>
|
|
||||||
// /// <param name="onComplete">单个执行成功的回调</param>
|
|
||||||
// /// <param name="allOnComplete">全部执行成功的回调</param>
|
|
||||||
// /// <param name="onFailed">执行失败的回调</param>
|
|
||||||
// /// <typeparam name="T"></typeparam>
|
|
||||||
// public void LoadTagAsset<T>(string addressTag, Action<T> onComplete, Action<T> allOnComplete,
|
|
||||||
// Action onFailed = null) where T : UnityEngine.Object
|
|
||||||
// {
|
|
||||||
// if (nameCaches.ContainsKey(addressTag))
|
|
||||||
// {
|
|
||||||
// var handle = this.nameCaches[addressTag];
|
|
||||||
// if (handle.IsDone)
|
|
||||||
// {
|
|
||||||
// if (onComplete != null)
|
|
||||||
// {
|
|
||||||
// onComplete(nameCaches[addressTag].Result as T);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// HandleAddCompleted(addressTag, handle, allOnComplete, onFailed);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// var handle = Addressables.LoadAssetsAsync(addressTag, onComplete);
|
|
||||||
// AddTagCompleted(addressTag, handle, allOnComplete, onFailed);
|
|
||||||
// nameCaches.Add(addressTag, handle);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private void AddTagCompleted<T>(string addressTag, AsyncOperationHandle handle, Action<T> allOnComplete,
|
|
||||||
// Action onFailed = null) where T : UnityEngine.Object
|
|
||||||
// {
|
|
||||||
// handle.Completed += (result) =>
|
|
||||||
// {
|
|
||||||
// if (result.Status == AsyncOperationStatus.Succeeded)
|
|
||||||
// {
|
|
||||||
// var obj = result.Result as T;
|
|
||||||
// if (allOnComplete != null)
|
|
||||||
// {
|
|
||||||
// allOnComplete(obj);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// if (onFailed != null)
|
|
||||||
// {
|
|
||||||
// onFailed();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Debug.LogErrorFormat("读取地址为-【{0}】-的ab包资源失败!", addressTag);
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private void HandleAddCompleted<T>(string addressName, AsyncOperationHandle handle, Action<T> onComplete,
|
|
||||||
// Action onFailed = null) where T : UnityEngine.Object
|
|
||||||
// {
|
|
||||||
// handle.Completed += (result) =>
|
|
||||||
// {
|
|
||||||
// if (result.Status == AsyncOperationStatus.Succeeded)
|
|
||||||
// {
|
|
||||||
// var obj = result.Result as T;
|
|
||||||
// if (onComplete != null)
|
|
||||||
// {
|
|
||||||
// onComplete(obj);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// else
|
|
||||||
// {
|
|
||||||
// if (onFailed != null)
|
|
||||||
// {
|
|
||||||
// onFailed();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// Debug.LogErrorFormat("读取地址为-【{0}】-的ab包资源失败!", addressName);
|
|
||||||
// }
|
|
||||||
// };
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private void LoadRelease(string name)
|
|
||||||
// {
|
|
||||||
// if (nameCaches.ContainsKey(name))
|
|
||||||
// {
|
|
||||||
// Addressables.Release(nameCaches[name]);
|
|
||||||
// nameCaches.Remove(name);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// private void OnDestroy()
|
|
||||||
// {
|
|
||||||
// for (int i = 0; i < nameCaches.Count; i++)
|
|
||||||
// {
|
|
||||||
// KeyValuePair<string, AsyncOperationHandle> kv = nameCaches.ElementAt(i);
|
|
||||||
// LoadRelease(kv.Key);
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: f2a6c483194d4c64da7c4c43bb892873
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,85 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
namespace Stary.Evo
|
|
||||||
{
|
|
||||||
public class Singleton<T> where T : class
|
|
||||||
{
|
|
||||||
public static T Instance
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (mInstance == null)
|
|
||||||
{
|
|
||||||
// 通过反射获取构造
|
|
||||||
var ctors = typeof(T).GetConstructors(BindingFlags.Instance | BindingFlags.NonPublic);
|
|
||||||
// 获取无参非 public 的构造
|
|
||||||
var ctor = Array.Find(ctors, c => c.GetParameters().Length == 0);
|
|
||||||
|
|
||||||
if (ctor == null)
|
|
||||||
{
|
|
||||||
throw new Exception("Non-Public Constructor() not found in " + typeof(T));
|
|
||||||
}
|
|
||||||
|
|
||||||
mInstance = ctor.Invoke(null) as T;
|
|
||||||
}
|
|
||||||
|
|
||||||
return mInstance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static T mInstance;
|
|
||||||
}
|
|
||||||
/// <summary>
|
|
||||||
/// 单例基类
|
|
||||||
/// </summary>
|
|
||||||
/// <typeparam name="T"></typeparam>
|
|
||||||
public class MonoSingleton<T>: MonoBehaviour where T: MonoBehaviour
|
|
||||||
{
|
|
||||||
private static T mInstance;
|
|
||||||
|
|
||||||
public static T Instance
|
|
||||||
{
|
|
||||||
get {
|
|
||||||
if (mInstance == null)
|
|
||||||
{
|
|
||||||
T t = GameObject.FindObjectOfType<T>();
|
|
||||||
if (t)
|
|
||||||
{
|
|
||||||
mInstance = t;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GameObject go = new GameObject(typeof(T).Name);
|
|
||||||
mInstance = go.AddComponent<T>();
|
|
||||||
}
|
|
||||||
|
|
||||||
return mInstance;
|
|
||||||
}
|
|
||||||
|
|
||||||
return mInstance;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public class DoNotDestroy : MonoBehaviour
|
|
||||||
{
|
|
||||||
public static DoNotDestroy Instance;
|
|
||||||
|
|
||||||
private void Awake()
|
|
||||||
{
|
|
||||||
if (Instance != null)
|
|
||||||
{
|
|
||||||
Destroy(gameObject);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Instance = this;
|
|
||||||
DontDestroyOnLoad(gameObject);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 87700e1e40089e843aa7c13dd28b0214
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 1f85c3e3e6e5da644b65960afc09211b
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "com.staryevo.main",
|
"name": "com.staryevo.main",
|
||||||
"version": "1.0.0",
|
"version": "1.0.6",
|
||||||
"displayName": "00.StaryEvo",
|
"displayName": "00.StaryEvo",
|
||||||
"description": "This is an Framework package",
|
"description": "This is an Framework package",
|
||||||
"unity": "2021.3",
|
"unity": "2021.3",
|
||||||
|
|||||||
Reference in New Issue
Block a user