zip压缩加载测试

This commit is contained in:
2025-05-23 18:26:47 +08:00
parent ada423ac91
commit cbd48e8411
147 changed files with 7855 additions and 6 deletions

View File

@@ -0,0 +1,27 @@
public class _Const
{
public const int LAYER_DEFAULT = 0;
public const int LAYER_TRANSPARENTFX = 1;
public const int LAYER_IGNORE_RAYCAST = 2;
public const int LAYER_WATER = 4;
public const int LAYER_UI = 5;
public const int LAYER_LAYER6 = 6;
public const int LAYER_LAYER7 = 7;
public const int LAYER_LAYER8 = 8;
public const int LAYER_LAYER9 = 9;
public const int LAYER_LAYER10 = 10;
public const int LAYER_LAYER11 = 11;
public const int LAYER_LAYER12 = 12;
public const int LAYER_LAYER13 = 13;
public const int LAYER_LAYER14 = 14;
public const int LAYER_LAYER15 = 15;
public const int LAYER_LAYER16 = 16;
public const int LAYER_LAYER17 = 17;
public const string TAG_UNTAGGED = "Untagged";
public const string TAG_RESPAWN = "Respawn";
public const string TAG_FINISH = "Finish";
public const string TAG_EDITORONLY= "EditorOnly";
public const string TAG_MAINCAMERA= "MainCamera";
public const string TAG_PLAYER = "Player";
public const string TAG_GAMECONTROLLER = "GameController";
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 121e5154d8bb6ac49a32eeeadeba3e45
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,61 @@
using System.Threading.Tasks;
using Stary.Evo;
using Stary.Evo.UIFarme;
using UnityEngine;
namespace Main
{
public class MainDomain :DomainBase,IController
{
public override void OnEnter(string param)
{
base.OnEnter(param);
Debug.Log("UnityEvo: OnEnter进入成功");
}
public override void OnExit()
{
base.OnExit();
GetArchitecture().Dispose();
Debug.Log("UnityEvo: OnExit退出成功");
}
public override Task OnEnterAsync(string param)
{
Debug.Log("UnityEvo: OnEnterAsync进入成功");
this.GetSystem<IZoneSystem>().CreatZone(this.transform);
this.GetSystem<IDigitalHuman>().LoadKKController(this.transform);
return base.OnEnterAsync(param);
}
public override Task OnExitAsync()
{
Debug.Log("UnityEvo: OnEnterAsync退出成功");
return base.OnExitAsync();
}
public void OnDestroy()
{
GetArchitecture().Dispose();
}
public IArchitecture GetArchitecture()
{
return MainArchitecture.Interface;
}
}
public class MainArchitecture : Architecture<MainArchitecture>
{
protected override void Init()
{
//注册示例
//RegisterSystem<IScoreSystem>(new ScoreSystem());
RegisterData<IZoneData>(new ZoneGatherData());
RegisterSystem<IZoneSystem>(new ZoneSystem());
RegisterSystem<IDigitalHuman>(new DigitalHuman());
RegisterSystem<IVideoSystem>(new VideoSystem());
RegisterSystem<IPanelSystem>(new PanelSystem());
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1b21927e111c22c4b93513b595e9f4a2
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,77 @@
using System;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using Main;
using Stary.Evo;
using UnityEngine;
using YooAsset;
namespace Main
{
public class PointController : MonoBehaviour, IController
{
public ZoneController ZoneController;
private SphereCollider sphereCollider;
private IUnRegister _onTriggerEnterUnRegister;
private IUnRegister _onTriggerExitUnRegister;
public void Init(ZoneController ZoneController, PointData pointData)
{
this.ZoneController = ZoneController;
name = pointData.name;
//根据数据设置zone 碰撞盒
transform.localPosition = pointData.position;
transform.localRotation = Quaternion.Euler(pointData.rotation);
transform.localScale = pointData.scale;
sphereCollider = this.transform.GetOrAddComponent<SphereCollider>();
_onTriggerEnterUnRegister = this.OnTriggerEnterEvent(OnPointTriggerEnterEvent);
_onTriggerExitUnRegister = this.OnTriggerExitEvent(OnPointriggerExitEvent);
this.gameObject.SetActive(false);
}
public void OnPointTriggerEnterEvent(Collider collider)
{
if (collider.gameObject.CompareTag("MainCamera"))
{
// ZoneController.OpenPoint(this);
Debug.Log("OnPointTriggerEnterEvent");
}
}
public void OnPointriggerExitEvent(Collider collider)
{
if (collider.gameObject.CompareTag("MainCamera"))
{
// ZoneController.OpenPoint(this);
Debug.Log("OnPointTriggerEnterEvent");
}
}
public IArchitecture GetArchitecture()
{
return MainArchitecture.Interface;
}
}
public class ZoneColliderEntity
{
public string Name { get; set; }
public BoxCollider ZoneCollider { get; set; }
public Func<Collider> EntorComplete { get; set; }
public Func<Collider> ExitComplete { get; set; }
public PointColliderEntity[] PointColliderEntities { get; set; }
}
public class PointColliderEntity
{
public string Name { get; set; }
public bool IsTrigger { get; set; }
public SphereCollider PointCollider { get; set; }
public Func<Collider> EntorComplete { get; set; }
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 1d999e82fdea4ce287a59f805605e760
timeCreated: 1744884916

View File

@@ -0,0 +1,136 @@
namespace R
{
public class Res
{
public class Main
{
public static class anim
{
public const string vid_maskani_anim = "Anim_vid_maskAni";
public const string vid_maskcontroller_controller = "Anim_vid_maskController";
public const string vid_maskdefault_anim = "Anim_vid_maskDefault";
}
public static class audios
{
public const string au_x_07_ending1_wav = "Audios_au_X_07_ending1";
public const string au_x_07_ending2_wav = "Audios_au_X_07_ending2";
public const string au_x_07_ending3_wav = "Audios_au_X_07_ending3";
public const string au_x_07_ending4_wav = "Audios_au_X_07_ending4";
}
public static class config
{
public const string domainconfig_asset = "Config_DomainConfig";
}
public static class dll
{
public static class android
{
public const string com_stary_evo_runtime_dll_bytes = "Android_com.stary.evo.runtime.dll";
public const string dotween_dll_bytes = "Android_DOTween.dll";
public const string informationsave_runtime_dll_bytes = "Android_InformationSave.RunTime.dll";
public const string mscorlib_dll_bytes = "Android_mscorlib.dll";
public const string system_core_dll_bytes = "Android_System.Core.dll";
public const string uifarme_runtime_dll_bytes = "Android_UIFarme.RunTime.dll";
public const string unitask_dll_bytes = "Android_UniTask.dll";
public const string unityengine_coremodule_dll_bytes = "Android_UnityEngine.CoreModule.dll";
public const string yooasset_dll_bytes = "Android_YooAsset.dll";
}
}
public static class prefabs
{
public const string guideball_point_prefab = "Prefabs_GuideBall_Point";
public const string guideball_zone_prefab = "Prefabs_GuideBall_Zone";
public const string kkcontroller_prefab = "Prefabs_KKController";
public const string main_prefab = "Prefabs_Main";
public const string videopanel_prefab = "Prefabs_VideoPanel";
public const string watermark_prefab = "Prefabs_Watermark";
}
public static class scenes
{
}
public static class spriteatlas
{
public const string video_spriteatlas = "";
public const string vid_video_mask_spriteatlas = "";
}
public static class sprites
{
public const string ui_video_kepu_png = "Sprites_ui_video_kepu";
public const string ui_x_07_ending1_png = "Sprites_ui_X_07_ending1";
public const string ui_x_07_ending2_png = "Sprites_ui_X_07_ending2";
public const string ui_x_07_ending3_png = "Sprites_ui_X_07_ending3";
public const string ui_zone1_shengmingjiankangqu_png = "Sprites_ui_zone1_shengmingjiankangqu";
public const string ui_zone2_jiankangyingxiangyinsuqu_png = "Sprites_ui_zone2_jiankangyingxiangyinsuqu";
public const string ui_zone3_shengmingfanghuqu_png = "Sprites_ui_zone3_shengmingfanghuqu";
public const string ui_zone4_jiankangsuyangqu_png = "Sprites_ui_zone4_jiankangsuyangqu";
public const string ui_zone5_jiankangshenghuofangshiqu_png = "Sprites_ui_zone5_jiankangshenghuofangshiqu";
public static class video
{
}
public static class vid_video_mask
{
public const string vid_mask_001_png = "vid_video_mask_vid_mask_001";
public const string vid_mask_002_png = "vid_video_mask_vid_mask_002";
public const string vid_mask_003_png = "vid_video_mask_vid_mask_003";
public const string vid_mask_004_png = "vid_video_mask_vid_mask_004";
public const string vid_mask_005_png = "vid_video_mask_vid_mask_005";
public const string vid_mask_006_png = "vid_video_mask_vid_mask_006";
public const string vid_mask_007_png = "vid_video_mask_vid_mask_007";
public const string vid_mask_008_png = "vid_video_mask_vid_mask_008";
public const string vid_mask_009_png = "vid_video_mask_vid_mask_009";
public const string vid_mask_010_png = "vid_video_mask_vid_mask_010";
public const string vid_mask_011_png = "vid_video_mask_vid_mask_011";
public const string vid_mask_012_png = "vid_video_mask_vid_mask_012";
public const string vid_mask_013_png = "vid_video_mask_vid_mask_013";
public const string vid_mask_014_png = "vid_video_mask_vid_mask_014";
public const string vid_mask_015_png = "vid_video_mask_vid_mask_015";
public const string vid_mask_016_png = "vid_video_mask_vid_mask_016";
public const string vid_mask_017_png = "vid_video_mask_vid_mask_017";
public const string vid_mask_018_png = "vid_video_mask_vid_mask_018";
public const string vid_mask_019_png = "vid_video_mask_vid_mask_019";
public const string vid_mask_020_png = "vid_video_mask_vid_mask_020";
public const string vid_mask_021_png = "vid_video_mask_vid_mask_021";
public const string vid_mask_022_png = "vid_video_mask_vid_mask_022";
public const string vid_mask_023_png = "vid_video_mask_vid_mask_023";
public const string vid_mask_024_png = "vid_video_mask_vid_mask_024";
public const string vid_mask_025_png = "vid_video_mask_vid_mask_025";
public const string vid_mask_026_png = "vid_video_mask_vid_mask_026";
public const string vid_mask_027_png = "vid_video_mask_vid_mask_027";
public const string vid_mask_028_png = "vid_video_mask_vid_mask_028";
public const string vid_mask_029_png = "vid_video_mask_vid_mask_029";
public const string vid_mask_030_png = "vid_video_mask_vid_mask_030";
public const string vid_mask_031_png = "vid_video_mask_vid_mask_031";
public const string vid_mask_032_png = "vid_video_mask_vid_mask_032";
public const string vid_mask_033_png = "vid_video_mask_vid_mask_033";
public const string vid_mask_034_png = "vid_video_mask_vid_mask_034";
public const string vid_mask_035_png = "vid_video_mask_vid_mask_035";
public const string vid_mask_036_png = "vid_video_mask_vid_mask_036";
public const string vid_mask_037_png = "vid_video_mask_vid_mask_037";
public const string vid_mask_038_png = "vid_video_mask_vid_mask_038";
public const string vid_mask_039_png = "vid_video_mask_vid_mask_039";
public const string vid_mask_040_png = "vid_video_mask_vid_mask_040";
public const string vid_mask_041_png = "vid_video_mask_vid_mask_041";
public const string vid_mask_042_png = "vid_video_mask_vid_mask_042";
public const string vid_mask_043_png = "vid_video_mask_vid_mask_043";
public const string vid_mask_044_png = "vid_video_mask_vid_mask_044";
public const string vid_mask_045_png = "vid_video_mask_vid_mask_045";
public const string vid_mask_046_png = "vid_video_mask_vid_mask_046";
public const string vid_mask_047_png = "vid_video_mask_vid_mask_047";
public const string vid_mask_048_png = "vid_video_mask_vid_mask_048";
public const string vid_mask_049_png = "vid_video_mask_vid_mask_049";
public const string vid_mask_050_png = "vid_video_mask_vid_mask_050";
public const string vid_mask_051_png = "vid_video_mask_vid_mask_051";
public const string vid_mask_052_png = "vid_video_mask_vid_mask_052";
public const string vid_mask_053_png = "vid_video_mask_vid_mask_053";
public const string vid_mask_054_png = "vid_video_mask_vid_mask_054";
public const string vid_mask_055_png = "vid_video_mask_vid_mask_055";
public const string vid_mask_056_png = "vid_video_mask_vid_mask_056";
public const string vid_mask_057_png = "vid_video_mask_vid_mask_057";
public const string vid_mask_058_png = "vid_video_mask_vid_mask_058";
public const string vid_mask_059_png = "vid_video_mask_vid_mask_059";
public const string vid_mask_060_png = "vid_video_mask_vid_mask_060";
}
}
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8c2846e6784c72e4186e83c127058adb
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,124 @@
using System;
using Stary.Evo;
using UnityEngine;
using UnityEngine.UI;
using YooAsset;
namespace Main
{
public class ZoneController : MonoBehaviour, IController
{
public ZoneType zoneType;
public BoxCollider ZoneCollider { get; set; }
public PointController[] PointControllerEntities { get; set; }
private IUnRegister _onTriggerEnterUnRegister;
private Image _image;
public async void Init(ZoneData zoneData)
{
name = zoneData.name;
zoneType = Enum.Parse<ZoneType>(name);
_image=transform.Find("Canvas/Image").GetComponent<Image>();
//根据数据设置zone 碰撞盒
transform.localPosition = zoneData.position;
transform.localRotation = Quaternion.Euler(zoneData.rotation);
transform.localScale = zoneData.scale;
ZoneCollider = this.transform.GetOrAddComponent<BoxCollider>();
_onTriggerEnterUnRegister = this.OnTriggerEnterEvent(OnZoneTriggerEnterEvent);
PointControllerEntities = new PointController[zoneData.pointDatas.Count];
var package = YooAssets.TryGetPackage("Main");
var spriteHandle = package.LoadAssetAsync<Sprite>($"Sprites_{zoneData.spriteName}" );
await spriteHandle.Task;
_image.sprite = spriteHandle.GetAssetObject<Sprite>();
_image.SetNativeSize();
var pointHandle = package.LoadAssetAsync<GameObject>(R.Res.Main.prefabs.guideball_point_prefab);
await pointHandle.Task;
for (int i = 0; i < zoneData.pointDatas.Count; i++)
{
PointData currentPointData = zoneData.pointDatas[i];
var pointGo = pointHandle.InstantiateSync(this.transform);
PointController pointController = pointGo.GetOrAddComponent<PointController>();
PointControllerEntities[i] = pointController;
pointController.Init(this, currentPointData);
this.GetSystem<IDigitalHuman>().AddPointData(new DigitalHumanPointData()
{
Name = zoneData.pointDatas[i].name,
pointTransform = pointGo.transform
});
}
// this.RegisterEvent(zoneType, OpenPoint);
}
public void OnZoneTriggerEnterEvent(Collider collider)
{
Debug.Log("OnZoneTriggerEnterEvent");
if (collider.gameObject.CompareTag("MainCamera"))
{
_onTriggerEnterUnRegister.UnRegister();
OpenPoint();
this.GetSystem<IZoneSystem>().OpenCurrentZone(this);
}
}
public void OpenPoint()
{
foreach (var controller in PointControllerEntities)
{
controller.gameObject.SetActive(true);
}
}
public void OpenPoint(PointController controller)
{
foreach (var controllerEntity in PointControllerEntities)
{
if (controllerEntity == controller)
{
controller.gameObject.SetActive(true);
}
else
{
controllerEntity.gameObject.SetActive(false);
}
}
}
public void ColsePoint()
{
foreach (var controller in PointControllerEntities)
{
controller.gameObject.SetActive(false);
}
}
public void OnZoneTriggerExitEvent(Collider collider)
{
}
public void OnPointTriggerEnterEvent(Collider collider)
{
}
public void OnPointTriggerExitEvent(Collider collider)
{
}
public IArchitecture GetArchitecture()
{
return MainArchitecture.Interface;
}
}
}

View File

@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 5f2837f45bfd4347b76957e11fd63f6b
timeCreated: 1744876130

View File

@@ -0,0 +1,160 @@
using System.Collections;
using System.Collections.Generic;
using Stary.Evo;
using UnityEngine;
namespace Main
{
public interface IZoneData : IData
{
ZoneData[] GetZoneDataAll();
ZoneData GetZoneData(int id);
ZoneData GetZoneData(string domain);
PointData GetPointData(int zoneId, int pointId);
PointData GetPointData(string zoneDomain, string pointDomain);
}
public class ZoneGatherData : AbstractData, IZoneData
{
private PointGatherData _pointGatherData;
protected override void OnInit()
{
_pointGatherData = Resources.Load<PointGatherData>("PointGatherData");
}
/// <summary>
/// 通过id获取区域数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ZoneData[] GetZoneDataAll()
{
if (_pointGatherData != null)
{
for (int i = 0; i < _pointGatherData.ZoneDatas.Count; i++)
{
return _pointGatherData.ZoneDatas.ToArray();
}
Debug.LogWarning($"UnityEvo:PointGatherData is null");
}
else
{
Debug.LogError("UnityEvo:PointGatherData is null");
}
return default;
}
/// <summary>
/// 通过id获取区域数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ZoneData GetZoneData(int id)
{
if (_pointGatherData != null)
{
for (int i = 0; i < _pointGatherData.ZoneDatas.Count; i++)
{
if (_pointGatherData.ZoneDatas[i].id == id)
{
return _pointGatherData.ZoneDatas[i];
}
}
Debug.LogWarning($"UnityEvo:{id}在PointGatherData is null");
}
else
{
Debug.LogError("UnityEvo:PointGatherData is null");
}
return default;
}
/// <summary>
/// 通过id获取区域数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ZoneData GetZoneData(string domain)
{
if (_pointGatherData != null)
{
for (int i = 0; i < _pointGatherData.ZoneDatas.Count; i++)
{
if (_pointGatherData.ZoneDatas[i].name == domain)
{
return _pointGatherData.ZoneDatas[i];
}
}
Debug.LogWarning($"UnityEvo:{domain}在PointGatherData is null");
}
else
{
Debug.LogError("UnityEvo:PointGatherData is null");
}
return default;
}
public PointData GetPointData(int zoneId, int pointId)
{
ZoneData zoneData = GetZoneData(zoneId);
if (zoneData.pointDatas != null)
{
for (int i = 0; i < zoneData.pointDatas.Count; i++)
{
if (zoneData.pointDatas[i].id == pointId)
{
return zoneData.pointDatas[i];
}
}
Debug.LogWarning($"UnityEvo:{pointId}在PointGatherData.zoneData.pointDatas is null");
}
else
{
Debug.LogError("UnityEvo:PointGatherData.zoneData.pointDatas is null");
}
return default;
}
public PointData GetPointData(string zoneDomain, string pointDomain)
{
ZoneData zoneData = GetZoneData(zoneDomain);
if (zoneData.pointDatas != null)
{
for (int i = 0; i < zoneData.pointDatas.Count; i++)
{
if (zoneData.pointDatas[i].name == pointDomain)
{
return zoneData.pointDatas[i];
}
}
Debug.LogWarning($"UnityEvo:{pointDomain}在PointGatherData.zoneData.pointDatas is null");
}
else
{
Debug.LogError("UnityEvo:PointGatherData.zoneData.pointDatas is null");
}
return default;
}
public override void Dispose()
{
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 23cb528afab304d429cd1873c3ec2281
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,59 @@
using System.Collections;
using System.Collections.Generic;
using Stary.Evo;
using UnityEngine;
using YooAsset;
namespace Main
{
public interface IZoneSystem : ISystem
{
void CreatZone(Transform parent);
void OpenCurrentZone(ZoneController CurrentController);
}
public class ZoneSystem : AbstractSystem, IZoneSystem
{
private ZoneController[] zoneControllers;
protected override void OnInit()
{
}
/// <summary>
/// 创建zone碰撞盒
/// </summary>
public async void CreatZone(Transform parent)
{
var package = YooAssets.TryGetPackage("Main");
var pointHandle = package.LoadAssetAsync<GameObject>(R.Res.Main.prefabs.guideball_zone_prefab);
await pointHandle.Task;
var zoneDatas = this.GetData<IZoneData>().GetZoneDataAll();
zoneControllers = new ZoneController[zoneDatas.Length];
for (int i = 0; i < zoneDatas.Length; i++)
{
var zoneGo = pointHandle.InstantiateSync(parent);
ZoneController pointController = zoneGo.GetOrAddComponent<ZoneController>();
zoneControllers[i] = pointController;
pointController.Init(zoneDatas[i]);
}
}
public void OpenCurrentZone(ZoneController CurrentController)
{
foreach (var controller in zoneControllers)
{
if (controller != CurrentController)
{
controller.ColsePoint();
}
}
}
public override void Dispose()
{
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: c0daf3dc0256eff458e570c61418625b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: