mirror of
https://github.com/tuyoogame/YooAsset.git
synced 2026-05-16 21:00:14 +00:00
Update samples
This commit is contained in:
221
Assets/Samples~/TestSample/Scripts/TestScene.cs
Normal file
221
Assets/Samples~/TestSample/Scripts/TestScene.cs
Normal file
@@ -0,0 +1,221 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using YooAsset;
|
||||
|
||||
public class TestScene : MonoBehaviour
|
||||
{
|
||||
public YooAssets.EPlayMode PlayMode = YooAssets.EPlayMode.EditorSimulateMode;
|
||||
|
||||
void Awake()
|
||||
{
|
||||
Application.targetFrameRate = 60;
|
||||
Application.runInBackground = true;
|
||||
}
|
||||
void OnGUI()
|
||||
{
|
||||
GUIConsole.OnGUI();
|
||||
}
|
||||
|
||||
IEnumerator Start()
|
||||
{
|
||||
Debug.Log($"资源系统运行模式:{PlayMode}");
|
||||
|
||||
// 编辑器模拟模式
|
||||
if (PlayMode == YooAssets.EPlayMode.EditorSimulateMode)
|
||||
{
|
||||
var createParameters = new YooAssets.EditorSimulateModeParameters();
|
||||
createParameters.LocationServices = new DefaultLocationServices("Assets/GameRes");
|
||||
yield return YooAssets.InitializeAsync(createParameters);
|
||||
}
|
||||
|
||||
// 单机模式
|
||||
if (PlayMode == YooAssets.EPlayMode.OfflinePlayMode)
|
||||
{
|
||||
var createParameters = new YooAssets.OfflinePlayModeParameters();
|
||||
createParameters.LocationServices = new DefaultLocationServices("Assets/GameRes");
|
||||
yield return YooAssets.InitializeAsync(createParameters);
|
||||
}
|
||||
|
||||
// 联机模式
|
||||
if (PlayMode == YooAssets.EPlayMode.HostPlayMode)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
// 开始测试
|
||||
BeginTest();
|
||||
}
|
||||
|
||||
void BeginTest()
|
||||
{
|
||||
AutoTestLog("开启单元测试 !");
|
||||
|
||||
// 开始同步测试
|
||||
SyncTest();
|
||||
}
|
||||
void OverTest()
|
||||
{
|
||||
AutoTestLog("结束单元测试 !");
|
||||
}
|
||||
void AutoTestLog(string info)
|
||||
{
|
||||
Debug.Log($"[{Time.frameCount}] {info}");
|
||||
}
|
||||
|
||||
#region 同步测试
|
||||
void SyncTest()
|
||||
{
|
||||
SyncTest1();
|
||||
SyncTest2();
|
||||
|
||||
// 开始回调测试
|
||||
CallbackTest();
|
||||
}
|
||||
void SyncTest1()
|
||||
{
|
||||
AutoTestLog($"开始同步加载游戏对象测试 !");
|
||||
var handle = YooAssets.LoadAssetSync<GameObject>("Entity/Cube/cube1");
|
||||
Debug.Assert(handle.Status == EOperationStatus.Succeed);
|
||||
var go = handle.InstantiateSync();
|
||||
Debug.Assert(go != null);
|
||||
GameObject.Destroy(go);
|
||||
handle.Release();
|
||||
}
|
||||
void SyncTest2()
|
||||
{
|
||||
AutoTestLog($"开始同步加载TexturePacker图集测试 !");
|
||||
var handle = YooAssets.LoadSubAssetsSync<Sprite>("UIAtlas/TexturePacker/tpAtlas");
|
||||
Debug.Assert(handle.Status == EOperationStatus.Succeed);
|
||||
var sprite = handle.GetSubAssetObject<Sprite>("Icon_Sword_128");
|
||||
Debug.Assert(sprite != null);
|
||||
handle.Release();
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 回调测试
|
||||
void CallbackTest()
|
||||
{
|
||||
CallbackTest1();
|
||||
}
|
||||
void CallbackTest1()
|
||||
{
|
||||
AutoTestLog($"开始异步加载游戏对象,回调测试 !");
|
||||
var handle = YooAssets.LoadAssetAsync<GameObject>("Entity/Cube/cube2");
|
||||
handle.Completed += (h) =>
|
||||
{
|
||||
Debug.Assert(handle.Status == EOperationStatus.Succeed);
|
||||
var operation = handle.InstantiateAsync();
|
||||
operation.Completed += (o) =>
|
||||
{
|
||||
Debug.Assert(operation.Status == EOperationStatus.Succeed);
|
||||
Debug.Assert(operation.Result != null);
|
||||
GameObject.Destroy(operation.Result);
|
||||
handle.Release();
|
||||
CallbackTest2();
|
||||
};
|
||||
};
|
||||
}
|
||||
void CallbackTest2()
|
||||
{
|
||||
AutoTestLog($"开始异步加载原生文件,回调测试 !");
|
||||
var operation = YooAssets.GetRawFileAsync("Config/config2");
|
||||
operation.Completed += (o) =>
|
||||
{
|
||||
Debug.Assert(operation.Status == EOperationStatus.Succeed);
|
||||
|
||||
// 开始协程测试
|
||||
this.StartCoroutine(CoroutineTest());
|
||||
};
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 协程测试
|
||||
IEnumerator CoroutineTest()
|
||||
{
|
||||
yield return CoroutineTest1();
|
||||
yield return CoroutineTest2();
|
||||
|
||||
//开始Task测试
|
||||
TaskTest();
|
||||
}
|
||||
IEnumerator CoroutineTest1()
|
||||
{
|
||||
AutoTestLog($"开始异步加载游戏对象,协程测试 !");
|
||||
var handle = YooAssets.LoadAssetAsync<GameObject>("Entity/Cube/cube3");
|
||||
yield return handle;
|
||||
Debug.Assert(handle.Status == EOperationStatus.Succeed);
|
||||
var operation = handle.InstantiateAsync();
|
||||
yield return operation;
|
||||
Debug.Assert(operation.Status == EOperationStatus.Succeed);
|
||||
Debug.Assert(operation.Result != null);
|
||||
GameObject.Destroy(operation.Result);
|
||||
handle.Release();
|
||||
}
|
||||
IEnumerator CoroutineTest2()
|
||||
{
|
||||
AutoTestLog($"开始异步加载原生文件,协程测试 !");
|
||||
var operation = YooAssets.GetRawFileAsync("Config/config3");
|
||||
yield return operation;
|
||||
Debug.Assert(operation.Status == EOperationStatus.Succeed);
|
||||
yield return operation;
|
||||
Debug.Assert(operation.Status == EOperationStatus.Succeed);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Task测试
|
||||
async void TaskTest()
|
||||
{
|
||||
await TaskTest1();
|
||||
await TaskTest2();
|
||||
|
||||
// 开始错误测试
|
||||
ErrorTest();
|
||||
}
|
||||
async Task TaskTest1()
|
||||
{
|
||||
AutoTestLog($"开始异步加载游戏对象,Task测试 !");
|
||||
var handle = YooAssets.LoadAssetAsync<GameObject>("Entity/Cube/cube4");
|
||||
await handle.Task;
|
||||
Debug.Assert(handle.Status == EOperationStatus.Succeed);
|
||||
var operation = handle.InstantiateAsync();
|
||||
await operation.Task;
|
||||
Debug.Assert(operation.Status == EOperationStatus.Succeed);
|
||||
Debug.Assert(operation.Result != null);
|
||||
GameObject.Destroy(operation.Result);
|
||||
handle.Release();
|
||||
}
|
||||
async Task TaskTest2()
|
||||
{
|
||||
AutoTestLog($"开始异步加载原生文件,Task测试 !");
|
||||
var operation = YooAssets.GetRawFileAsync("Config/config4");
|
||||
await operation.Task;
|
||||
Debug.Assert(operation.Status == EOperationStatus.Succeed);
|
||||
await operation.Task;
|
||||
Debug.Assert(operation.Status == EOperationStatus.Succeed);
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 错误测试
|
||||
void ErrorTest()
|
||||
{
|
||||
AutoTestLog($"开始错误加载的测试 !");
|
||||
|
||||
var handle1 = YooAssets.LoadAssetSync<GameObject>("");
|
||||
Debug.Assert(handle1.Status == EOperationStatus.Failed);
|
||||
|
||||
var handle2 = YooAssets.LoadAssetSync<GameObject>("xxx1");
|
||||
Debug.Assert(handle2.Status == EOperationStatus.Failed);
|
||||
|
||||
var result = YooAssets.IsNeedDownloadFromRemote("xxx2");
|
||||
Debug.Assert(result == false);
|
||||
|
||||
var operaiton = YooAssets.GetRawFileAsync("xxx3");
|
||||
Debug.Assert(operaiton.Status == EOperationStatus.Failed);
|
||||
|
||||
// 结束测试
|
||||
OverTest();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
11
Assets/Samples~/TestSample/Scripts/TestScene.cs.meta
Normal file
11
Assets/Samples~/TestSample/Scripts/TestScene.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a4878bda4f0274c42981d0fe227e703b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user