zip压缩加载测试
This commit is contained in:
27
Assets/Main/Script/Runtime/HotUpdate/GeneratedConst.cs
Normal file
27
Assets/Main/Script/Runtime/HotUpdate/GeneratedConst.cs
Normal 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";
|
||||
}
|
||||
11
Assets/Main/Script/Runtime/HotUpdate/GeneratedConst.cs.meta
Normal file
11
Assets/Main/Script/Runtime/HotUpdate/GeneratedConst.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 121e5154d8bb6ac49a32eeeadeba3e45
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
61
Assets/Main/Script/Runtime/HotUpdate/MainDomain.cs
Normal file
61
Assets/Main/Script/Runtime/HotUpdate/MainDomain.cs
Normal 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());
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Main/Script/Runtime/HotUpdate/MainDomain.cs.meta
Normal file
11
Assets/Main/Script/Runtime/HotUpdate/MainDomain.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1b21927e111c22c4b93513b595e9f4a2
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
77
Assets/Main/Script/Runtime/HotUpdate/PointController.cs
Normal file
77
Assets/Main/Script/Runtime/HotUpdate/PointController.cs
Normal 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; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1d999e82fdea4ce287a59f805605e760
|
||||
timeCreated: 1744884916
|
||||
136
Assets/Main/Script/Runtime/HotUpdate/Res.cs
Normal file
136
Assets/Main/Script/Runtime/HotUpdate/Res.cs
Normal 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";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Main/Script/Runtime/HotUpdate/Res.cs.meta
Normal file
11
Assets/Main/Script/Runtime/HotUpdate/Res.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8c2846e6784c72e4186e83c127058adb
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
124
Assets/Main/Script/Runtime/HotUpdate/ZoneController.cs
Normal file
124
Assets/Main/Script/Runtime/HotUpdate/ZoneController.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5f2837f45bfd4347b76957e11fd63f6b
|
||||
timeCreated: 1744876130
|
||||
160
Assets/Main/Script/Runtime/HotUpdate/ZoneGatherData.cs
Normal file
160
Assets/Main/Script/Runtime/HotUpdate/ZoneGatherData.cs
Normal 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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
11
Assets/Main/Script/Runtime/HotUpdate/ZoneGatherData.cs.meta
Normal file
11
Assets/Main/Script/Runtime/HotUpdate/ZoneGatherData.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 23cb528afab304d429cd1873c3ec2281
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
59
Assets/Main/Script/Runtime/HotUpdate/ZoneSystem.cs
Normal file
59
Assets/Main/Script/Runtime/HotUpdate/ZoneSystem.cs
Normal 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()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
11
Assets/Main/Script/Runtime/HotUpdate/ZoneSystem.cs.meta
Normal file
11
Assets/Main/Script/Runtime/HotUpdate/ZoneSystem.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c0daf3dc0256eff458e570c61418625b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user