Initial commit
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 84e24d973daa9564db536bd009ec11cc
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 98eb035eb7e5cc14694ed78d4215f579
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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);
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf6ce1cc457f25f4fa864d359bc95e18
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 56be1d651140a1d4fb90c3fb34136a4b
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b65f36076867594bbc3bd06880b8497
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -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); }
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 13d44cd5aaa7e9d4380cd6f8d1af21f1
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user