Unity常用面试问题

GC针对的谁

new对象的时候,产生新对象

GC是发生在什么时候

主动调collect接口以及内存分配不足的时候

如何避免gc

别new对象

GC的过程,为什么耗时

每一次GC会经历以下过程,堆上的对象越多,对象的引用越多,意味着GC所做的工作越多
1:GC会检查堆上所有的对象
2:GC会检查所有这些对象的引用是否仍在作用域
3:每个不在作用域的对象都会被标记为待删除
4:GC删除每个待删除的垃圾对象

移动端的优化

GC,UGUI合批,网格重建,跨语言调用,IO,预制体加载大小(特效动态加载),ab包分类

卡牌鱼眼列表的实现

利用Horizontal Layout Group的控制自己缩放特性和item的缩放来修改content大小,监听鼠标事件

全面屏手机为什么可以自适应,自适应是怎么处理的

水滴屏:
修改父节点的anchorMin,跳过水滴

safeAreaRect.offsetMin = Vector2.zero;
safeAreaRect.offsetMax = Vector2.zero;
var resolution = canvas.pixelRect.size;
var offsetX = resolution.x - safeArea.width;
var offsetY = resolution.y - safeArea.height;
safeAreaRect.anchorMin = new Vector2(offsetX / resolution.x, offsetY / resolution.y);
safeAreaRect.anchorMax = new Vector2((resolution.x-offsetX)/ resolution.x, (resolution.y-offsetY)/ resolution.y);

有一个按钮点击了没有反应为什么 pc和手机上

raycast没勾选,被别人挡住了

c#的字典是什么实现的

Hash算法

无限列表的实现,格子划完超过1之后的做法,不需要每个设置数据,进去的一行设置位置就行了。滑到下面去怎么跟index变化进行对应

建个字典用数据索引和transform缓存

大地图划的很快,或者一下子缩小会不会看到一个图片没有加载出来或者一个空的地方

用九宫格加载和精确度低的图片解决

相机裁剪的流程

先在世界空间下剔除完全不在范围内的,然后在光栅化出像素点后裁剪

为什么函数出来后值类型离开后会自动释放

因为值类型是复制的,出栈后栈顶指针收缩复用那片区域,引用是在堆里面

stringbuilder实现

字符数组

texture导入的设置重要的设置

可读可写,类型,大小,压缩格式,minmap是否开启(开了增加内存,不开分辨率过高增加渲染压力,显存过大,传递数据drawcall更多)

头顶UI的优化技巧

1.使用3D做法,避免坐标转换,可以使用job放在其他线程处理旋转缩放,位置,缺点canvasgroup,以及布局组件之类的不好使用
2.判断视野范围内才更新
3.超过一定距离卸载,跟相机的距离
4.根据距离远近分帧更新
5.需要时更新,怪物移动以及相机更新
6.加载的时候分帧加载,避免同一帧创建多个

TCP和UDP

tcp:按序到达,实时性没udp强,要连接才能发送,双向通信
udp:无法保证顺序,单向通信

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/63481.shtml

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

相关文章

在Linux上将 `.sh` 脚本、`.jar` 包或其他脚本文件添加到开机自启动

在Linux上将 .sh 脚本、.jar 包或其他脚本文件添加到开机自启动 在Linux环境中,有时需要将一些程序、脚本或应用程序设置为开机时自动启动。这对于那些需要在系统启动时启动的服务或应用非常有用。本文将介绍如何将 .sh 脚本、.jar 包或其他脚本文件添加到Linux系统…

Git使用步骤

Git 是一个分布式版本控制系统,广泛用于软件开发和其他需要跟踪文件变更的项目。以下是 Git 的基本使用方法和一些常用命令的详细说明。 安装 Git 在大多数操作系统上,你可以通过包管理器安装 Git: Windows: 下载并安装 Git for Windows。…

详细指南:在Ubuntu 20.04上安装和配置Orbbec SDK及USB设备权限

详细指南:在Ubuntu 20.04上安装和配置Orbbec SDK及USB设备权限 在Ubuntu 20.04上安装和配置Orbbec SDK以及进行USB设备的权限配置和调整USBFS缓存大小,涉及到一系列系统配置和环境准备步骤。以下是详细的步骤说明,以确保准确和高效地设置开发…

【GCC】2015: draft-alvestrand-rmcat-congestion-03 机器翻译

腾讯云的一个分析,明显是看了这个论文和草案的 : 最新的是应该是这个 A Google Congestion Control Algorithm for Real-Time Communication draft-ietf-rmcat-gcc-02 下面的这个应该过期了: draft-alvestrand-rmcat-congestion-03

计算机网络技术基础:5.数据通信系统

一、数据通信的基本概念 1.信息 信息是对客观事物的运动状态和存在形式的反映,可以是客观事实的形态、大小、结构、性能等描述,也可以是客观事物与外部之间的联系。信息的载体可以是数字、文字、语音、图形和图像等。计算机及其外围设备产生和交换的信息…

STM32中ADC模数转换器

一、ADC简介 ADC模拟-数字转换器 ADC可以将引脚连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁 12位逐次逼近型ADC,1us转换时间 输入电压范围: 0~3.3V,转换结果范围:0~4095 18个输入…

医疗领域的网络安全预防:保障患者隐私与医疗数据安全

医疗领域的网络安全预防:保障患者隐私与医疗数据安全 随着信息技术的不断发展和医疗行业的数字化转型,网络安全在医疗领域变得愈加重要。医疗行业处理着大量的敏感数据,包括患者的个人信息、医疗记录、诊疗方案等,这些数据一旦被…

【数字图像处理】期末综合知识点总结 ver1,灰度图像,图像增强,平滑滤波,锐化滤波,图像复原,图像压缩

关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…

.NET 技术 | 调用系统API创建Windows服务

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

【Qt】QWidget中的常见属性及其功能(二)

目录 六、windowOpacity 例子: 七、cursor 例子: 八、font 九、toolTip 例子: 十、focusPolicy 例子: 十一、styleSheet 计算机中的颜色表示 例子: 六、windowOpacity opacity是不透明度的意思。 用于设…

Elasticsearch02-安装7.x

零、文章目录 Elasticsearch02-安装7.x 1、Windows安装Elasticsearch (1)JDK安装 Elasticsearch是基于java开发的,所以需要安装JDK。我们安装的Elasticsearch版本是7.15,对应JDK至少1.8版本以上。也可以不安装jdk,…

php学习资料分享

php学习资料分享:夸克网盘分享

UWA Gears V1.0.5|新增Thread Load指标

UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。 本次版本更新主要是新增了Thread Load指标,帮助大家更直观地了解多线程任务的负载分布情…

IAR中如何而将定义的数组放在指定的位置

在keil中可以使用下面的方法将数组定义到指定的位置 uint8_t g_usart_rx_buf[USART_REC_LEN] __attribute__ ((at(0X20001000)));但是这个方法在IAR中是用不了的,通过网上查找各种资料,发现了两种可用的方法。我这里测试的单片机是stm32f103c8t6,其他单…

共创共建!葡萄城 SpreadJS 完成 HarmonyOS NEXT 操作系统兼容认证

最新技术资源(建议收藏) https://www.grapecity.com.cn/resources/ 近日,华为“企业工作必备应用鸿蒙化论坛”在北京圆满落幕,论坛汇聚了众多行业精英和合作伙伴,聚焦讨论企业数字化转型与原生鸿蒙生态融合等话题。葡萄…

hpe服务器更新阵列卡firmware

背景 操作系统:RHEL7.8 hpe服务器经常出现硬盘断开,阵列卡重启问题,导致系统hang住。只能手动硬重启。 I/O error,dev sda smartpqi 0000:5c:00:0: resettiong scsi 1:1:0:1 smartpqi 0000:5c:00:0: reset of scsi 1:1:0:1:…

websocket的心跳检测和断线重连

心跳检测和断线重连可以通过WebSocket的事件和属性来实现。以下是一个简单的JavaScript示例,使用WebSocket API实现心跳检测和断线重连的功能: let ws;function connectWebSocket() {ws new WebSocket(ws://your-websocket-server-url);ws.onopen fun…

ES6学习Symbol(五)

这里写目录标题 一、概述二、代码 一、概述 ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。 它是 JavaScript 语言的第七种数据类型,前六种是: undefined 、 null 、布尔值(Boolean)、字符串(St…

Spark-Streaming容错语义

一、背景 为了理解Spark Streaming提供的语义,我们先回顾西Spark RDD的基本容错语义学。 RDD是一个不可变的、确定性可重新计算的分布式数据集。每个RDD都记住在容错输入数据集上用于创建它的确定性操作的沿袭。如果RDD的任何分区由于工作节点故障而丢失&#xff…

AmpliconSuite-pipeline

AmpliconSuite-pipeline: 多线程支持的端到端工具,用于从配对端全基因组测序数据分析局部拷贝数扩增(如ecDNA或BFB) AmpliconSuite-pipeline 是一个多线程支持的端到端工具,用于 AmpliconArchitect 和 AmpliconClassifier,以支持从配对端全基因组测序数据分析局部拷贝数扩…