黄金民的个人文档

黄金民的个人文档


播放模式设计文档

<h2>架构图</h2> <p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/e51b2269dccbc0756942e5caf042a08b" alt="" /></p> <p>播放器核心由3个维度的参数来确认</p> <ol> <li>平台-这个构建出包的时候就已经确定了</li> <li>播放方式-这个是由外部作为参数传进来,它确定了实验的场景和流程 目前有课件、测评,未来会有更多的播放模式</li> <li>交互方式-这个是由外部作为参数传进来,它确定了实验的交互方式 这个目前可以通过3D、VR映射到对应的交互输入方式,比如 3D:使用鼠标、键盘、触屏 VR:头盔、手柄</li> </ol> <h3>流程图</h3> <pre><code class="language-plantuml">@startuml |外壳播放器| start :参数解析; :必要模块的初始化; :下载颗粒; :解析颗粒; :下载颗粒依赖用品资源; :初始化LuaEnv; |交互模式| :初始化播放模式配置; :初始化交互方式; |播放模式| :读取播放模式配置文件; :加载播放模式配置; :加载播放模式首个场景; :实例化播放模式对象; :进入播放模式; :退出播放模式; |外壳播放器| :退出播放器; end @enduml</code></pre> <h3>播放模式关键配置信息</h3> <h4>目录结构</h4> <pre><code class="language-csharp">+---PlayerModeName ├─meta.json │ ├─config │ PlayMode.confg │ ├─language │ zh_CN.json │ ├─module │ A.dll │ B.dll │ └─resource ├─scene │ 101Player.scene.ab │ Loading.scene.ab │ └─wnd xxxxWnd.ab yyyyWnd.ab</code></pre> <h4>Meta.confg</h4> <pre><code class="language-json">{ "version":"1.0.0", "name":"3DCourse", "platform":"Windows", "miniPlayer":"2.3.0", "miniEngine":"2.4.0" }</code></pre> <h4>PlayMode.confg</h4> <pre><code class="language-json">{ "scene": [ { "name": "Launch", "path": "launch_unity.assetbundle" }, { "name": "Loading", "path": "loading_unity.assetbundle" }, { "name": "101Player", "path": "101player_unity.assetbundle" } ], "playModeScript": "AAA.BBB.TDCoursePlayMode, Assembly-CSharp" }</code></pre> <p>```C# interface IPlayerMode { void OnInit(IPlayerModeContex contex); void OnEnter(string playModeName); void OnExit(string playModeName); }</p> <p>interface IPlayerModeContex { ///版本 String Version{get;} ///名字 String Name{get;} ///场景列表 string[] Scenes{get;} ///配置文件路径 String PlayerModePath{get;} ///硬件平台 Platform Platform{get;} ///交互方式 InteractMode InteractMode{get;} }</p> <pre><code> [3D播放器示例](https://www.showdoc.com.cn/630732418816884/7836955111097332)</code></pre>

页面列表

ITEM_HTML