操作题

1、联网操作(蓝图或C++) #

收录时间
2022年11月12日

基于虚幻引擎网络框架完成

2人练机抢夺物品游戏,要求如下: #

  1. 场景:一个带有门空房间,房间外有2个桌子
  2. 两名玩家联机,有开门动作,跑到一个屋子里面抢夺物品。
  3. 屋子里地面上有5个小物品 (可以超过五个,随机)
  4. 玩家随机拾取地面上的物品,放到屋外的桌子上
  5. 判断2人,谁搬运的物品更多,弹窗提示哪个玩家胜利

完成时间:1-2天内,提交作品视频

扩展此问题(非面试要求) #

  1. 游戏启动等待其他玩家加入,等待时长30秒
  2. 如超过30秒未有玩家加入,游戏结束。
  3. 玩家加入后必须在30秒内随机选择阵营颜色(游戏最多进入4人,颜色为红,黄,蓝,绿
  4. 玩家可以输入昵称
  5. 如出现玩家未选择原色,未选择昵称,则系统随机分配颜色,并分配昵称。原则是,颜色不能重复,昵称不能重复。
  6. 根据玩家数量,生成对应颜色的球(位置随机在场景中),每个玩家生成5个球.
  7. 生成彩色球,彩色球5个,每个计分2份
  8. 对应颜色玩家可以拾取对应颜色的球,并且可以拾取彩色球。例如红色玩家可以拾取红色球或是彩色球,不能拾取其他颜色球。
  9. 将球放置到对应颜色的桌子。基础色球每个记1份,彩色球每个记2分。
  10. 每人每次只能拾取一个球。
  11. 彩色球可以放置到自己颜色桌子(自己加分),或是放置到其他颜色桌子(其他人加分)
  12. 游戏中可以随时查看游戏玩家积分情况

游戏胜利条件 #

  • 积分模式:场上任意一种颜色球被拾取完毕,并且彩色球被抢夺完毕
  • 计时模式:倒计时60秒,取分数最高的玩家胜利

注意胜利需要弹出胜利窗口,失败玩家提示再接再厉,并告知胜利者是谁


2、本地图片读取(蓝图或C++) #

收录时间
2022年11月12日
  1. 读取本地图片(任意二十张图片);
  2. umg中两种展示方式可任意切换;
  3. 展示方式一:九宫图,一页九张,切换至最后一页不足九张顺位开头n张补齐。点击任意一张皆可全屏显示。
  4. 展示方式二:轮播模式,一排三张,中间为大图预览,两边为小图预览,同时作为上下张翻页按钮,点击左侧小图三张图均切换为当前图片的上一张,点击右侧反之。点击中间大图全屏显示。

3、UMG测试(蓝图或C++) #

收录时间
2022年11月12日

引擎版本4.27+

  1. umg树形结构:层级要求四级以上;一级管理者三到四个,二级管理者1~9人,三级管理者(0~9),四级以上(0~9)(需有一组体现出0) 推荐使用UMG TreeView。
  2. 员工模型(可用基础模型示意),同一类别(部门,下文中类别同义)用同种模型示意,职级大小用模型缩放示意。
  3. 员工模型上方显示两个字段,分别为职位、姓名。
  4. 不同类别站不同区域,同一级别站同一行。
  5. 点击umg列表中员工,与之对应的员工模型及职位姓名变色,其他未被此次点击的员工还原。

建议UMG列表与员工模型为自动生成(通过配置表)。使用TreeView

参考示例 #


4、画线操作(蓝图或C++) #

收录时间
2022年03月11日

引擎版本4.27+

描述:在UE4场景中,鼠标每次点击时,拾取点中物体的坐标位置(鼠标点击的那个位置),将鼠标点击位置进行空间画线。当结束功能时,给出空间线的总长度。


5、C++链表测试(C++) #

收录时间
2022年03月11日

描述:用UE C++写一个简单的程序。使用链表方式,做一个简单的数据求和的功能。


6、综合操作(蓝图和C++) #

收录时间
2022年03月11日

必须使用蓝图和C++混编

描述:用UE C++写一个自己的actor,这个actor包含一个碰撞体,和一个3DWidget,要求3DWidget上边带有数字。在编辑器中,用BP脚本实例化这个actor(可以是任意形状、正方体、球体),当鼠标点击这个actor后,弹出3DWidget。用BP另外建一个UI,这个UI上可以输入数字,当在这个UI输入数字后,actor弹出的3DWdiget上的数字要跟着改变。


7、蟋蟀互斗(蓝图或C++) #

收录时间
2021年08月25日

优先选用蓝图完成

注意审题,操作方式实现方式随意,需要贴合设计题目

斗蟋蟀交互内容:

参考图示,用两个简单物体代表两只蟋蟀,蟋蟀分为红方和蓝方,各有2点血(要能看出头部方向,可以用BOX代替)

两个物体的运动限制在一个圆圈范围以内,两个物体随机朝着对方进行跳跃攻击,被攻击的一方会向后撤步,攻击方会扑空,然后两只蟋蟀,退回到中间位置,再进行随机判定。

整个循环中,会随机出现一个倒计时的时间(两组倒计时时间不少于5秒),在倒计时的期间,如果用鼠标对其中红方的头部进行点击,红色蟋蟀便会跳跃起来咬向蓝方,蓝方会扣一点血(扣完后,两只蟋蟀归位)。如果第二次撩拨蟋蟀成功,红色会咬向蓝色,蓝色2点血减完便会显示死亡,画面显示我方成功。如果两次倒计时后,都没有来得及点蟋蟀头部,蓝色便会咬向红色,红色死亡,画面显示敌方成功。


8、蓝图动画题(蓝图) #

收录时间
2022年03月27日

优先选用蓝图完成

  1. 创建接口,输入输出参数int数组
  2. Actor实现接口,进行排序
  3. Level关卡生成int数组,进行初始化10个元素[1,100],接口实现排序
  4. 数组最大值 - 最小值 = val,0 < val < 50 人在原地走,50 < val < 80 人上身走,下身跑,val > 80人自动走到一个固定点
  5. 根据val值生成多个A,每行15个,以UMG输出到屏幕

9、飞行模拟(C++) #

收录时间
2022年01月06日

此题难度较大,绕不开C++

一周时间发相应录屏(能从视频中看到下面的考查点),此题为开发性题目,作为评估岗位能力主要依据

第一题:引擎(UE4或者U3D,根据应聘岗位自选)+网络+小算法

制作一服务器端,场景不做要求(可以网上下载一个可以反映飞机的运动感觉的场景),界面上有两个按钮,一个自动模式,一个手动模式,程序启动后默认为自动。场景默认显示一飞机沿设定好的路线在飞(考查路径跟踪算法)。点击手动模式按钮,此时可以用键盘鼠标等手动控制飞机飞行。能控制飞机俯仰(限定俯仰角-30-30之间)、偏航、加速、减速,横滚(限定横滚角-30-30之间)。再点击自动模式,飞机能平滑飞回原先的航线(考查切回航线算法)沿设定路线飞行。

客户端连接后,本服务器向客户端每隔一帧发送当前飞机姿态和位置。客户端根据服务器发来的位置和姿态同步显示客户端程序内置的飞机。

说明:路线为首尾连接可循环路线。路线的任意一个关键点与下一个点之间大于1公里,路线总距离大于50公里。

网络请使用原始Sokect模式编写,UDP或者TCP可以自选。


10、沙盘类项目测试(蓝图) #

收录时间
2021年05月29日

此题较为简单,使用蓝图完成即可,注意操作反馈

参照视频完成项目制作


11、商城功能测试(C++或蓝图) #

收录时间
2021年11月25日

注意考虑数据驱动逻辑

要求:道具信息需要读取本地JSON文件,商店信息需要读取本地JSON。

素材可以根据实际情况寻找

基础需求 #

  1. 搭建测试场景,并摆放多个NPC
  2. 每个NPC挂载一种商店(布料店,武器店,防具店,材料店)
  3. 走进NPC点击开启弹窗,选择进入商店或是对话(对话可以随意设计,添加随机内容)
  4. 打开商店页面,要求显示商店内容与玩家背包
  5. 玩家背包限制格子数量,例如最大格子20各
  6. 拖拽道具到背包为购买,拖拽道具到商店为出售。
  7. 出售道具价格为购买价格的70%
  8. 鼠标悬停显示道具信息(图标,名称,等级,价格,品质,属性,用途,描述等,不限)

拓展部分 #

  1. 可设计道具堆叠特性,购买时填入购买数量
  2. 出售时堆叠道具可选出售数量
  3. 堆叠道具可自动堆叠到背包中已有道具上
  4. 增加道具排序功能,例如遵循价格,品质等
  5. 增加筛选功能
  6. 增加搜索功能
  7. 增加整理功能(整理规则随意设定)

寄售行 #

  1. 可设计寄售行系统,所有背包道具可以挂载到寄售行完成道具寄售
  2. 玩家可以选择寄售行撤销出售道具
  3. 设计联网,其他玩家可以通过网络购买寄售行道具
  4. 寄售行道具出售后,卖方接收到信息,提示道具出售成功,获取收益

注意:无需考虑存储问题

12、操作题测试 #

收录时间
2019年11月6日

蓝图或是C++完成均可

做个umg,随机输入十个数,后台进行排序,展示最大值。如果最大值小于50,人从a点走到b点。如果值在60-80之间,做一个人物动画混合,上身走下身跑。如果在80-100之间,给场景物体做一个描边。

13、两道实训测试 #

收录时间
2019年10月24日

真实面试企业需求题,二选一

蓝图或是C++完成均可

实训题一: #

声纳光波效果->设置一个actor为需要找寻的物体,发射声纳光波,碰到需要找寻的物体.物体返回不同颜色的光波

实训题二 #

制作一个简单的弹药系统,弹药量(30/60)

描述:做一个弹药箱,移动到附近范围,按下E键可补充弹药(后备弹药充足,面版提示“后备弹药已满”,后备弹药不满时,按下E可补充后备弹药和弹夹弹药,面版提示“正在补给”,三秒后补充完毕。补充时中断则不予补给弹药。)UI面版展示弹药实时数据。 R键换弹(后备弹药填装到弹 夹,并可以发射)

弹夹为0不能发射。

14、翻页操作题 #

收录时间
2019年5月17日

蓝图或是C++完成均可,注意翻页过程中如果增加动画体验会更好

基本功能:

  1. 使用UMG完成一个翻页功能,可以向左(上一张)向右(下一张)翻页,以及退出功能。翻页效果不限,用图需清晰比例正确。
  2. 可以同时显示三张图,如下图。
  3. 双击中间的图可以全屏显示,全屏显示后依然能够翻页,如下图。
  • 加分项1:项目发布后,客户依然可以在指定路径下更换图片。
  • 加分项2:鼠标滑动屏幕完成翻页。
  • 加分项3:同时能够兼容播放视频。

15、火烧绳子问题 #

收录时间
2018年8月1日

蓝图或是C++完成均可

注意:由于素材缺失,故可以读一下操作即可

请使用桌面上名为[ExamProject] 的项目

  1. 玩家是一根火柴柜子把手上有绳子系着,需要用火柴将绳子烧断要求:

火柴必须具有可扩展性点燃与被点燃请使用接口来实现(比如突然想让你点燃其他物体能快速的让其他物体实现被点燃的效果)“禁止使用 GetAlIActorsr 禁止绳子直接访问柜子的方法,请使用接口或 Dispatchert

  1. 天花板会滴水,滴到绳子上,玩家如果直接烧绳子,绳子上燃烧的火焰就会被 水打灭,绳子不会被烧开“

要求

请留意当将滴水与绳子在游戏地图上分开时请解决无限生成等会导致性能较低的问题,使其即使滴落到地面上也没问题”

  1. 玩家需要按下E键可在自己所在的位置创造出随机物体(书,瓶子等)挡在绳子上面才可以成功将绳子烧断

要求

物体必须开启物理模拟,水滴不能将遮挡的物体打飞e 0在满足以上条件的情况下可自由发挥,保持逻辑清晰即可+