在调试UE4代码时往往看到SViewport、FViewport、FViewportClient、FSceneViewport这一大堆viewport相关的类会感到头晕脑涨,晕晕乎乎,仔细分析类一下,这些类其实是分为三个序列,互相之前有着千丝万缕的联系,上图先:
一、首先重点是FViewport系列,这一支源头其实是FRenderTarget,由此可知,其子孙主要从事将几何图形绘制到内存或设备上,事实也是这样。
在ue引擎中最为重要的是FSceneViewport,很明显其实就是场景绘制视口。绘制类型包括:3D和正交;绘制模式包括光照、线框等等;
二、FViewportClient这一支的源头就是FViewportClient本尊,分别在游戏模式和编辑其模式生出了UGameViewportClient和FEditorViewportClient和FLevelEditorViewportClient。这一系列其实是中介,他们负责处理视口的输入逻辑,根据输入来告诉视口(FViewport)怎么干活
需要说明的是UGameViewportClient之所以改姓(以U开头),是因为他的Baba有两个Baba,即从UObject派生了一把(应该是为了支持反射机制吧&#x