交互和表现-架构设计
<p>[toc]</p>
<table>
<thead>
<tr>
<th>作者</th>
<th>Zyy/Ljx</th>
</tr>
</thead>
<tbody>
<tr>
<td>Review</td>
<td>QFord</td>
</tr>
<tr>
<td>更新日期</td>
<td>2024-6-1</td>
</tr>
<tr>
<td>版本</td>
<td>V1.3.0</td>
</tr>
</tbody>
</table>
<h1>1. 需求背景</h1>
<p>为了尝试虚拟实验室更多的可能,追求更好的品相,尝试把虚拟实验室的一些业务搬到Unreal平台上实现。</p>
<h1>2. 领域模型</h1>
<p>基于Unity版本的未来实验室,Unreal版本功能边界划分如下:</p>
<ol>
<li>播放器负责外设输入和引擎的初始化</li>
<li>外设输入负责通过输入触发对应的交互组件</li>
<li>交互组件根据触发的交互决定器材的行为,比如移动或者旋转。</li>
<li>引擎组件包含了化学引擎和物理引擎等。引擎组件决定了器材何时表现以及要什么样的表现,比如在常温是正常的液体,
加热时需要沸腾表现。</li>
<li>表现组件根据引擎传递来的参数,对器材的表现进行管理控制。</li>
</ol>
<p>所涉及的领域模型关系,如下图所示设计:</p>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=dab01f780bfc2ca834b79a6e47fcb9ef&amp;file=file.png" alt="" /></p>
<p>[在线编辑地址](<a href="https://www.processon.com/v/652cf029b5ea1b0b09ec00bf?cid=65152ba7ee3af44dd46ad08a">https://www.processon.com/v/652cf029b5ea1b0b09ec00bf?cid=65152ba7ee3af44dd46ad08a</a> "在线编辑地址")</p>
<h1>3. 架构概览</h1>
<h1>3.1 交互架构</h1>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=fc5f9a57aa17821606365968c0ab4ab0&amp;file=file.png" alt="" /></p>
<h1>3.2 表现架构</h1>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=9703a3c64b6488e81671f3e94afa154b&amp;file=file.png" alt="" /></p>
<h1>4. 架构决策</h1>
<p>1.unreal已经对不同外设的交互进行了良好的封装,只需要实现对应的交互上下文映射即可。
2.交互和表现使用unreal的AbilitySystem架构实现,将交互和表现当做技能为器材进行添加和移除。
3.表现组件数量不宜设置过多,需要根据业务种类进行合并和抽象,采用精简化的设计策略。</p>
<h1>5. 组件视图</h1>
<h2>5.1 组件依赖关系视图</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=f085441a15cacb915b84bd8deb14f1d4&amp;file=file.png" alt="" /></p>
<h2>5.2 内部逻辑组件视图</h2>
<h3>交互内部逻辑组件视图</h3>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=fb6d599e0750c50d068e5e1931575d23&amp;file=file.png" alt="" /></p>
<h3>表现内部逻辑组件视图</h3>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=ca46b4e52fabb0e4f9e5144a0640533b&amp;file=file.png" alt="" /></p>
<h2>5.3 内部物理组件视图</h2>
<p>无</p>
<h1>6. 架构设计重难点补充</h1>
<h2>6.1 倾倒示例时序图</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=31bcf51f52475f8583e19e93f043a8a2&amp;file=file.png" alt="" /></p>
<h2>6.2 电场线绘制时序图</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=d01783c934ef6e2a83add77055eff801&amp;file=file.png" alt="" /></p>
<p>[时序图](<a href="https://www.processon.com/v/664c446ccfe67e27899fe641?cid=664af5f372d4f731a3ea16b3">https://www.processon.com/v/664c446ccfe67e27899fe641?cid=664af5f372d4f731a3ea16b3</a> "倾倒时序图")</p>
<h1>7. 其他设计说明</h1>
<p>无</p>