当前位置: 首页 > article >正文

unity实习生面试

北京教育中厂的成都分部  11.5

时长有28分钟
一面二面合并了
面试官人挺好的,也不是特别急,答的不是很好的问题面试官直接跳过了

顺序不是很统一 只写记得的部分
1.问了值类型和引用类型的区别
2. 问了ugui的组件有哪些
ugui有哪些优化方案
答用打图集来减少内存的消耗
Unity有哪些优化方案
答用对象池以及少用全局变量
3.引用类型储存在堆上是怎么储存的 好像是这个记不清了 没答出来 
问了两道算法
4一个三角形,一个三角形有三个顶点,然后有一个点如何判断另一个点在这个三角形的内部还是外部?自己答出来的是从内部找一个顶点连线,实际上答案是可以用面积来求以及用向量夹角来求。
5还有一个快排怎么排的?以及怎么优化快排
答:怎么排的想起来了,但是没有说优化方法    查找后:优化:三数取中  随机选基准值 选取首尾元素作为基准值
问了一下,快排怎么实现的?答的凑合
6.了解哪些设计模式
答:了只了解单例模式,然后说了说单例模式怎么用   

查找后:单例模式用于保证一个类只有一个实例,并且该实例可以全局访问。在Unity中,这种模式常用于管理游戏系统或资源,例如游戏设置,场景管理,音效管理等。

工厂模式用于创建对象,它将对象的创建过程封装在一个工厂类中,使得客户端程序无需直接调用对象的构造函数来创建对象,而只需要调用工厂类的方法即可。

观察者模式用于对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。在Unity中,观察者模式常用于事件的处理和UI界面的更新。

7.面向对象的三个特征 和五个原则

实现多态的三个步骤

  • 继承(猫和狗继承动物)
  • 重写方法(猫和狗重写eat方法)
  • 父类引用指向子类对象(Animal animal = new Cat();)

五大原则单一职责原则 一个类应该只负责一项任务 使代码更容易理解和维护 

  • 开放-封闭原则 类、模块、函数等)应该对扩展开放,对修改关闭 
  • 里氏替换原则 所有引用基类(父类)的地方必须能够使用其子类的对象 子类必须能够完全替代其父类
  • 接口隔离原则 接口应该尽可能小,只包含客户端需要的方法。
  • 依赖倒置原则 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 可以实现低耦合和高内聚的设计

答出来了特征没答出来原则
8协程是怎么实现的? 底层原理是什么?
答用迭代器
9.问了一下字典如何储存值以及字典的存东西的原理
没答上来   看了一下,发现好像是直接add remove就行(不知道是不是) 麻了
10.最后是一道场景题,问,工作时如果遇见了上边发配的任务已经完成不了了,时间特别紧急,要截止,你该怎么做?
答 :先自己憋一会儿,憋1到2个小时,实在想不出来找组长问一问怎么办,
11.问是不是自学的游戏? 答说是自己学的
12.问了问背包系统的制作需要用到哪些ugui组件
没答好,光说了说用图片组件,还有一个能让,图片排列规矩的组件。。。。。这我当时还自己做过,然而实在记不清了都是三四个月之前了
反问环节:问了问,公司是做什么项目的?
回答 公司是做学龄前儿童的绘本小游戏  呃,问实习生需要干什么  得到回答,实习生需要在绘本中一些益智小游戏的整体的游戏逻辑搭建

补:还想起来问了在引用类型堆中如何删除还是怎么着来着 答了个用GC自动删除也不知对不对

总结:基础有一些但是还是不太熟练 得仔细看看那个unity面经 当然算法和数据结构也得常常复习 差点快排怎么排没答上来。。。。汗流浃背了当时

四:几种数据结构的比较
这里比较一下Dictionary、HashSet、Hashtable、List

——如果是通过key去查找,Dictionary和Hashtable的效率是高于List的,如果是通foreash遍历,则List的效率更高(List底层是数组,内存是连续的。Dictionary和Hashtable底层是哈希表,根据Hash算法进行存储内存是不连续的,会产生更多的换页操作)
——HashSet的查找效率要高于List,因为HashSet内部原理是哈希表,只不过与Dictionary和Hashtable不同的是只存了key
——HashSet添加元素时会判断是否已经存在,不会添加重复的元素,可以使用HashSet去


http://www.kler.cn/a/386614.html

相关文章:

  • java 随机生成验证码
  • 基于ssh得网上预约挂号系统的设计与实现
  • Kettle配置数据源错误“Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found”解决记录
  • 越南很火的slots游戏投放Google谷歌广告策略
  • C++ —— 哈希详解 - 开散列与闭散列
  • 前缀和技巧解析
  • vite+vue项目创建流程;npm error enoent Could not read package.json异常报错问题
  • 表格全量数据下载(FileSaver和xlsx)
  • Mysql基础 03 pymysql库、事务命令
  • 多个NVR同时管理EasyNVR多品牌NVR管理工具/设备:IP常见问题解决方案
  • Ubuntu 安装yum遇坑
  • Android 重新定义一个广播修改系统时间,避免系统时间混乱
  • Redis 的线程模型
  • 【卷积基础】CNN中一些常见卷积(1*1卷积、膨胀卷积、组卷积、深度可分离卷积)
  • 快速学习Django框架以开发Web API
  • Django 框架:全方位技术分析
  • Linux如何更优质调节系统性能
  • 【网络安全 | 并发问题】Nginx重试机制与幂等性问题分析
  • 【问题解决】Tomcat由低于8版本升级到高版本使用Tomcat自带连接池报错无法找到表空间的问题
  • 论文阅读-Event-based Visible and Infrared Fusion via Multi-task Collaboration
  • 机器学习,生成式AI ,LLM大模型,人工智能,他们之间的关系是什么?有什么不同?
  • uni-app 实现自定义底部导航
  • 数据库的使用02:SQLServer的连接字符串、备份、还原、SQL监视相关设置
  • 算法训练(leetcode)二刷第二十天 | 93. 复原 IP 地址、78. 子集、90. 子集 II
  • LeetCode34:在排序数组中查找元素第一个和最后一个位置
  • 创新引领,模块化微电网重塑能源格局