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.mzph.cn/pingmian/59704.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot中集成MyBatis操作数据库详细教程

目录 前言1. 项目依赖配置1.1 引入MyBatis和数据库驱动依赖1.2 数据源配置 2. 创建数据库映射实体类3. 创建Mapper层接口4. 创建Service层4.1 定义Service接口4.2 实现Service接口 5. 创建Controller层6. 运行和测试项目6.1 启动项目6.2 测试接口 7. 总结 前言 在Java开发中&a…

OpenCV相机标定与3D重建(2)鱼眼相机模型

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 鱼眼相机是一种具有非常宽视野的相机,通常会产生强烈的径向畸变。鱼眼相机模型旨在捕捉这种畸变,以便能够准确地处理和校…

Matplotlib 绘图艺术:从新手到高手的全面指南

引言 在数据科学和机器学习领域,数据可视化是一项至关重要的技能。一个优秀的可视化图表可以直观地展示数据的内在规律,帮助我们更好地理解数据,并做出更明智的决策。而在众多的绘图库中,Matplotlib 是 Python 中最强大、最灵活的…

【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏

【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏 目录 文章目录 【大语言模型】ACL2024论文-07 BitDistiller: 释放亚4比特大型语言模型的潜力通过自蒸馏目录摘要研究背景问题与挑战如何解决创新点算法模型实验效果代码推荐阅读指数&…

RocketMQ部署教程

拉取 RocketMQ 镜像: 首先,从 Docker Hub 获取最新的 RocketMQ 镜像: docker pull apache/rocketmq:latest创建 Docker 网络: 为了使各容器之间能够通信,创建一个名为 rocketmq 的网络: docker network cre…

ORACLE批量插入更新如何拆分大事务?

拆分大事务 一、批量插入更新二、拆分事务之前文章MYSQL批量插入更新如何拆分大事务?说明了Mysql如何拆分,本篇文章探讨Oracle或OceanBase批量插入更新拆分大事务的问题 一、批量插入更新 oracle批量插入更新可使用merge语法eg: merge test ausing test_tmp bon (a.id = b.id…

鸿蒙next打包流程

目录 下载团结引擎 添加开源鸿蒙打包支持 打包报错 路径问题 安装DevEcoStudio 可以在DevEcoStudio进行打包hap和app 包结构 没法直接用previewer运行 真机运行和测试需要配置签名,DevEcoStudio可以自动配置, 模拟器安装hap提示报错 安装成功,但无法打开 团结1.3版本新增工具…

chatgpt3.5权重参数有多少MB;llama7B权重参数有多少MB

目录 chatgpt3.5权重参数有多少MB llama7B权重参数有多少MB chatgpt3.5权重参数有多少MB 关于ChatGPT 3.5的权重参数占用的存储空间大小,虽然直接给出具体的MB数值可能较为困难(因为这取决于多种因素,如参数表示的精度、是否进行了压缩等),但可以根据其参数量来估算一个…

基于Jeecgboot3.6.3vue3的flowable流程online表单的审批使用介绍

更多技术支持与服务请加入我的知识星球或加我微信,名称:亿事达nbcio技术交流社区https://t.zsxq.com/iPi8F 今天介绍一下基于jeecgboot3.6.3的flowable流程使用online表单进行审批的情况 1、首先建立一个online应用类型的流程,如下: 2、进行…

【LeetCode】【算法】238. 除自身以外数组的乘积

LeetCode 238. 除自身以外数组的乘积 题目描述 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据保证数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位整数范围内。 请不…

如何构建一个可扩展的测试自动化框架?

以下为作者观点: 假设你是测试自动化方面的新手,想参与构建一个框架。在这种情况下,重要的是要了解框架所需的组件,以及它们是如何组合的。思考项目的具体需求和目标,以及可能遇到的困难和挑战。 假如你是一个测试架…

实战:索引的命中机制

在 SQL Server 中,查询是否能命中索引(即是否能使用 Index Seek)取决于多个因素,包括索引的结构、查询条件的排列、和数据库优化器的策略。以下是一些常见的命中索引和不能命中索引的情况,及其详细解释: 一、命中索引的情况 1. 前导列匹配(典型的命中索引场景) 索引结…

使用Docker快速部署FastAPI Web应用

Docker是基于 Linux 内核的cgroup、namespace以及 AUFS 类的Union FS 等技术,对进程进行封装隔离,一种操作系统层面的虚拟化技术。Docker中每个容器都基于镜像Image运行,镜像是容器的只读模板,容器是模板的一个实例。镜像是分层结…

C++【string类,模拟实现string类】

🌟个人主页:落叶 🌟当前专栏: C专栏 目录 为什么学习string类 C语言中的字符串 标准库中的string类 auto和范围for auto关键字 迭代器 范围for string类的常用接口说明和使用 1. string类对象的常见构造 2.string类对象的容量操作 3…

android——jetpack startup初始化框架

一、jetpack startup Android Jetpack Startup是一个库,它简化了Android应用启动过程,尤其是对于那些需要处理复杂数据绑定和初始化逻辑的应用。它的核心在于提供了一个StartupComponent,用于声明应用的初始化逻辑,这个逻辑会在首…

A019基于SpringBoot的校园闲置物品交易系统

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

【赵渝强老师】Redis的RDB数据持久化

Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出会造成服务器中的数据库状态也会消失。所以 Redis 提供了数据持久化功能。Redis支持两种方式的持久化,一种是RDB方式;另一种是AOF(ap…

Excel:vba实现批量插入图片批注

实现的效果:实现的代码如下: Sub InsertImageNamesAndPictures()Dim PicPath As StringDim PicName As StringDim PicFullPath As StringDim RowNum As IntegerDim Name As StringDim Comment As CommentDim folder As FileDialog 定义文件选择对话框 清…

tomcat启动失败和缓存清理办法

tomcat只在学校接触过并且是在window xp和win7的电脑上配置过(中途升级过电脑系统),只记得在windows系统上可以将其设置成服务管理。但我已毕业10多年了,学的知识早就不知道丢哪里了。这次为了修改一个07,08年的项目&a…

SpringBoot使用ApplicationContext.getBean启动报空指针处理记录

问题:项目启动报空指针 定位:新增filter中init方法使用getbean控制 解决:在新增filter上加注解 DependsOn({"applicationContextUtils"}) Component DependsOn({"applicationContextUtils"})//此处解决空指针问题 pu…