Initial commit

This commit is contained in:
MuHua-123
2024-11-01 17:14:31 +08:00
commit 5f169b90bb
216 changed files with 24712 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary> 代理模块 </summary>
public abstract class ModuleAgent : MonoBehaviour {
public abstract void AgentNetwork(DataNetwork data);
public abstract void AgentLoadingNetwork(DataNetwork data);
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 84e24d973daa9564db536bd009ec11cc
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+39
View File
@@ -0,0 +1,39 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using MuHua;
/// <summary>
/// 核心模块,提供全部的抽象接口
/// </summary>
public class ModuleCore : Module<ModuleCore> {
/*---------------------------------------------功能模块--------------------------------------------------------*/
/// <summary> 视频模块 </summary>
public ModuleVideo ModuleVideo;
/// <summary> 场景模块 </summary>
public ModuleScene ModuleScene;
/// <summary> 代理模块 </summary>
public ModuleAgent ModuleAgent;
/*---------------------------------------------页面模块--------------------------------------------------------*/
/// <summary> 当前的主要页面模块 (UIDocument) </summary>
public ModuleUIPage CurrentPage;
/// <summary> 不会被销毁的全局唯一页面模块 (UIDocument) </summary>
public ModuleUIPage GlobalPage;
/*---------------------------------------------页面模块--------------------------------------------------------*/
/// <summary> 加载页面模块 (回调Action) </summary>
public ModuleUIPanel<Action> LoadingPanel;
/// <summary> 弹出提示模块 </summary>
public ModuleUIPanel<string> PopupPromptPanel;
/// <summary> 弹出窗口模块 </summary>
public ModuleUIPanel<DataPopup> PopupWindowPanel;
/// <summary> 设备视频交互模块 </summary>
public ModuleUIPanel<DataVideo> VideoPanel;
/// <summary> 设备视频图文交互模块 </summary>
public ModuleUIPanel<DataVideoImage> VideoImagePanel;
/// <summary> 学习视频模块 (回调Action) </summary>
public ModuleUIPanel<Action> LearningVideoPanel;
/// <summary> 全屏播放视频模块 (回调Action) </summary>
public ModuleUIPanel<Action> FullScreenVideoPanel;
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 98eb035eb7e5cc14694ed78d4215f579
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+16
View File
@@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class ModuleScene : MonoBehaviour {
protected virtual ModuleCore ModuleCore => ModuleCore.I;
protected virtual void Awake() {
if (ModuleCore.ModuleScene != null) { Destroy(gameObject); return; }
ModuleCore.ModuleScene = this;
DontDestroyOnLoad(gameObject);
}
public virtual void LoadSceneAsync(string scene) {
StartCoroutine(ILoadSceneAsync(scene));
}
public abstract IEnumerator ILoadSceneAsync(string scene);
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: bf6ce1cc457f25f4fa864d359bc95e18
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+19
View File
@@ -0,0 +1,19 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UIElements;
public abstract class ModuleUIPage : MonoBehaviour {
public UIDocument document;
public VisualElement root => document.rootVisualElement;
protected virtual ModuleCore ModuleCore => ModuleCore.I;
protected virtual void Awake() => ModuleCore.FunctionRegister(this);
public void Add(VisualElement child) {
root.Add(child);
}
public T Q<T>(string name = null, string className = null) where T : VisualElement {
return root.Q<T>(name, className);
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 56be1d651140a1d4fb90c3fb34136a4b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+30
View File
@@ -0,0 +1,30 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using UnityEngine;
using UnityEngine.UIElements;
public abstract class ModuleUIPanel<Data> : MonoBehaviour {
public ModuleUIPage ModuleUIPage;
public VisualTreeAsset ModuleUIPanelAsset;
protected VisualElement element;
protected readonly string defaultStyleClass = "module-ui-panel";
protected virtual ModuleCore ModuleCore => ModuleCore.I;
/// <summary> MonoBehaviour Awake </summary>
public abstract void Awake();
/// <summary> 打开模块,并且传进参数 </summary>
public abstract void Open(Data data);
/// <summary> 关闭模块 </summary>
public abstract void Close();
protected void InitElement(bool hide = true) {
element = ModuleUIPanelAsset.Instantiate();
ModuleUIPage.Add(element);
element.AddToClassList(defaultStyleClass);
element.style.display = hide ? DisplayStyle.None : DisplayStyle.Flex;
}
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 3b65f36076867594bbc3bd06880b8497
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
+63
View File
@@ -0,0 +1,63 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using UnityEngine;
public abstract class ModuleVideo : MonoBehaviour {
protected virtual ModuleCore Core => ModuleCore.I;
protected virtual void Awake() => Core.FunctionRegister(this);
/// <summary> 视频播放状态 </summary>
public virtual bool isPlaying => IsPlaying();
/// <summary> 从0开始的视频计数,x = 当前索引,y = 最大索引 </summary>
public virtual Vector2Int videoCount => VideoCount();
/// <summary> 视频渲染纹理 </summary>
public virtual RenderTexture renderTexture => RenderTexture();
/// <summary> 当前视频播放时间 </summary>
public virtual double time => Time();
/// <summary> 最大视频播放时间 </summary>
public virtual double maxTime => MaxTime();
/// <summary> 当前播放帧 </summary>
public virtual long frame { get => GetFrame(); set => SetFrame(value); }
/// <summary> 最大播放帧 </summary>
public virtual ulong frameCount => FrameCount();
/// <summary> 视频播放状态 </summary>
protected abstract bool IsPlaying();
/// <summary> 从0开始的视频计数,x = 当前索引,y = 最大索引 </summary>
protected abstract Vector2Int VideoCount();
/// <summary> 视频渲染纹理 </summary>
protected abstract RenderTexture RenderTexture();
/// <summary> 当前视频播放时间 </summary>
protected abstract double Time();
/// <summary> 最大视频播放时间 </summary>
protected abstract double MaxTime();
/// <summary> get当前播放帧 </summary>
protected abstract long GetFrame();
/// <summary> set当前播放帧 </summary>
protected abstract void SetFrame(long value);
/// <summary> 最大播放帧 </summary>
protected abstract ulong FrameCount();
/// <summary> 播放视频 </summary>
public abstract void Play();
/// <summary> 暂停视频 </summary>
public abstract void Pause();
/// <summary> 停止视频 </summary>
public abstract void Stop();
/// <summary> 根据索引播放视频 </summary>
public abstract void SetIndex(int value);
/// <summary> 根据累加的索引播放视频 </summary>
public abstract void AddIndex(int value);
/// <summary> 设置视频数据 </summary>
public abstract void SetValue(DataVideo value);
/// <summary> 设置视频数据列表 </summary>
public abstract void SetValue(List<DataVideo> list);
/// <summary> 设置视频数据,并且播放 </summary>
public virtual void Play(DataVideo value) { SetValue(value); Play(); }
/// <summary> 设置视频数据列表,并且第一个播放index位置的视频数据 </summary>
public virtual void Play(List<DataVideo> list, int index = 0) { SetValue(list); SetIndex(index); }
}
+11
View File
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 13d44cd5aaa7e9d4380cd6f8d1af21f1
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: