Unity 课时 4 : No.4 模拟面试题

news2024/11/23 21:53:50

课时 4 : No.4 模拟面试题

C#

1. 请说明字符串中

string str = null
string str = “”
string str = string.Empty
三者的区别

第一个未作初始化没有值,

第二个为空字符串,

答案:
str = null 在堆中没有分配内存地址
str = ""string.Empty 一样都是在堆内存中分配了空间,里面存储的是空字符串
而string.Empty是一个静态只读变量

2. C#重载运算符,重载 == 和 != 以及万物之父Object基类中的虚方法 virtual bool Equals(Object obj)

对于我们的意义是什么?

==比较值类型的时候比较地址是否相同,Equals用于比较具体的内容是否相同;

可以重载运算符使得 == 与 Equal 有同样效果。

答案:
为了判断两个对象的非引用地址相等
我们可以选择 使用 重载运算符 ==!= 或者
重写Equals方法,来自定义判断两个对象是否相等
如果想保留原有的引用地址相等判断,那么一般我们选择重写Equals方法

3. 在开发时,对string和StringBuilder我们应该如何选择

stringbuilder多用于字符串拼接时使用

答案:
string在每次拼接时都会产生垃圾
而StringBuilder在拼接时,是在原空间中进行修改,不会产生垃圾,会自动帮助我们扩容
所以当字符串需要频繁修改拼接时,我们使用StringBuilder

4. 请简要说明.Net跨语言原理

答案:
.Net制定了了CLI公共语言基础结构的规则
只要是按照该规则设计的语言在进行.Net相关开发时
编译器会将源代码(C#、VB等等)编译为CIL通用中间代码。
也就是说不管什么语言进行开发,最终都会统一规范变为中间代码
最终通过CLR(公共语言运行时或者称为.Net虚拟)将中间代码翻译为对应操作系统的原生代码(机器码)
在操作系统(Windows)上运行

5. 请简要说明.Net跨平台原理

答案:
由于.Net Framework中利用CLI和CLR实现了跨语言,CLR主要起到一个翻译、运行、管理中间代码的作用
.Net Core和Mono就是利用了CLR的这一特点,为不同操作系统实现对应CLR(公共语言运行时或.Net虚拟机)
那么不同操作系统对应的CLR就会将IL中间代码翻译为对应系统可以执行的原生代码(机器码)
达到跨平台的目的

Unity

1. Unity中的Destroy和DestroyImmediate的区别是什么?

Destroy不可以在编辑器模式下使用

答案:
Destroy方法
可以指定删除的延迟时间,如果第二个参数不填写,最快也会在下一帧前完成删除。也就是如果Destroy对象后马上判空,该对象不会为空。
实际的对象销毁操作始终延迟到当前更新循环结束,但始终在渲染前完成

DestroyImmediate方法
会立即销毁删除对象

2.外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

请问最终打印的 s 的结果为?

答案:
AC
主要考点
1.DestroyImmediate方法会立即将GameObject对象从场景上删除
2.UnityEngine.Object中对 ==!=! 进行了重载,如果用  !go 和 go == null 去判断对象是否为空,由于重载了,所以能够返回正确的结果 ture 和 false
但是本质上此时的 go 还不是真正意义上的的null,所以如果用 go is null
或者 将其转换为 万物之父 Object  (System.Object)go == null 去判断时 并不会为true
因此只会进入AC的if语句

这里的重点内容就是UnityEngine.Object 中重载了 逻辑非!== != 运算符,因为使用他们来判断null 是可以的,但是此时的GameObject在内部并不是真正意义的null
我们在使用时最好手动置空

3. 第一次执行GameObject.Instantiate时可能出现明显的卡顿如何解决该问题?

答案:
我们可以通过Unity自带的性能分析工具Profiler分析实例化时造成卡顿的原因
程序上,一般我们可以从以下3个方面去优化它
1.相关资源加载:如果是由于资源加载带来的卡顿,我们可以在进入场景时进行资源预加载,总体思路就是将较大资源提前或者分帧加载

2.脚本初始化:实例化对象时,会同步执行它身上挂载所有脚本的初始化工作,我们可以策略性的改变一些初始化逻辑,尽量不要再Awake和Start中做较复杂的逻辑,或者将复杂逻辑提前或者分帧处理

3.对于会频繁使用的对象,我们可以使用缓存池

美术上
不能只追求好的美术效果,而不考虑资源的消耗,要根据项目的实际情况,来设定模型的骨骼数、面数以及贴图的数量和大小上限。
在制作粒子特效时,粒子数、粒子面积、贴图等都要尽量少和小。
美术上要遵循:用最少的资源做出做好的效果,不能一味的用性能去换效果,最终会得不偿失

4. Lua如何实现面向对象的三大特性?

答案:
面向对象三大特性
封装:利用table进行封装
继承:利用元表和__index模拟继承关系
          设置子类的元表为父类,父类的__index为父类自己
          当子类身上找不到对应属性和方法时
          会查找元表的__index中的内容,也就是会查找父类中的内容
          通过这种方式来模拟继承
多态:子类自己去实现带:的同名方法即可

5. Unity使用IL2CPP打包时,我们应该注意什么?如何避免(可以举例说明)

答案:
使用IL2CPP打包时,最可能出现的问题就是代码裁剪,IL2CPP会自动将它认为不会使用的代码裁剪掉,比如我们在使用Lua开发时,其实会用到很多UnityEngine或者我们自己写的C#代码,但是这些代码并不会在引擎中直接使用,都是在Lua中使用的,此时最容易出现的问题就是代码裁剪,导致打包后出现异常和报错。

要避免IL2CPP的裁剪有3种方式,我们可以组合使用
1.设置打包时的裁剪等级
2.通过xml文件配置明确规定哪些内容不裁剪
3.在静态方法中显示调用不想被裁剪的内容

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

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

相关文章

CentOS7 yum安装报错:“Could not resolve host: mirrorlist.centos.org; Unknown error“

虚拟机通过yum安装东西的时候弹出这个错误: 1、查看安装在本机的网卡 网卡ens33处于disconnected的状态 nmcli d2、输入命令: nmtui3、选择网卡,然后点击edit 4、移动到Automatically connect按空格键选择,然后移动到OK键按空格…

Win7 IIS7解析漏洞复现

一、漏洞说明 文件上传使用白名单做限制,只能上传图片文件,导致脚本文件无法上传,上传图片马绕过白名单文件上传的验证,但是图片马又无法解析,利用IIS7.5文件解析漏洞的特点:任意文件名/任意文件名.php&…

华为云云耀云服务器L实例评测 | Linux系统宝塔运维部署H5游戏

文章目录 前言一、云服务器相对传统服务器有什么优势1.1、可伸缩性(Scalability)1.2、灵活性(Flexibility)1.3、高可用性(High Availability)1.4、备份和恢复(Backup and Recovery)1…

SVN学习笔记--如何 Merge 分支?保姆级教学,带图片手把手实操。

目录 前言实例具体步骤总结 前言 由于项目中有多个分支,如果修改了一处代码,可能需要保证分支和主分支代码一样,所以需要利用 SVN Merge 代码。 实例 现在有两个分支 一个 trunk:主分支一个 develop:开发分支 我们…

数学实验-迭代(Mathematica实现)

一、实验名称:迭代 二、实验环境:Mathematica 10.3软件 三、实验目的:本实验通过Mathematica 10.3软件利用迭代求解方程的近似解,了解迭代方法在解决问题的收敛速度的异同,认识到函数的迭代是数学研究中的一个非常重…

PHPword setImageValue 设置高度不生效

phpword 版本 "phpoffice/phpword": "^0.18.3 我正在使用这个代码,使用模板,写入动态图片,但问题是图像的大小太小,我需要增加高度和宽度 模板文件 如下 问题写法: $file_name "简历";…

UWB学习——day4

UWB学习——day4 技术劣势技术细节UWB频段系统调制方式UWB帧结构芯片实例 技术劣势 干扰其它技术,UWB技术目前允许在未授权的3.1 GHz至10.6 GHz频谱上运行,但该频谱上有许多其它无线通讯所在的频带,容易互相产生干扰,反而限制了适…

基因型数据VCF转EXCEL亲测好用

import pandas as pd df pd.read_csv(shuju.vcf, sep\t, comment#, headerNone,encodingutf-8) df.to_excel(outputFile2.xlsx, indexFalse,encodingutf-8) 以上就是转成功的截图,需要注意的是一定要写入编码方式,UTF-8 ,第一次我没有写编码…

实景无人直播系统哪个最好用?呆头鹅无人直播系统

软件图片素材来自于公众号:生财风暴 关注进行领取价值1000元的采集软件,和呆头鹅批量剪辑和矩阵管理系统演示 在未来,想要低成本在人工智能领域创业,其实很简单,如果你是想要低成本创业的人,那么请一定要把…

leetcode 1222. 可以攻击国王的皇后(每日一题)

1222. 可以攻击国王的皇后 在一个 8x8 的棋盘上,放置着若干「黑皇后」和一个「白国王」。 给定一个由整数坐标组成的数组 queens ,表示黑皇后的位置;以及一对坐标 king ,表示白国王的位置,返回所有可以攻击国王的皇后的…

pcl--第三节 关键点

简介 关键点也称为兴趣点,它是 2D 图像或 3D 点云或曲面模型上,可以通过检测标准来获取的具有稳定性、区别性的点集。从技术上来说,关键点的数量比原始点云或图像的数据量少很多,其与局部特征描述子结合组成关键点描述子。常用来构成原始数据的紧凑表示…

Furion api npm web vue混合开发

Furion api npm web vue混合开发 Furion-api项目获取swagger.json文件复制json制作ts包删除非.ts文件上传到npm获取npm包引用 Furion-api项目获取swagger.json文件 使用所有接口合并的配置文件 复制json制作ts包 https://editor.swagger.io 得到 typescript-axios-clien…

封面人物 | 贾楠:向中介费全面开炮

古人云,燕赵之地多慷慨豪侠之士。贾楠便是一个将豪迈的破局精神融入诸多创意项目的探路者,以及醉心于诗意人生的思考者。 上世纪90年代,他曾尾随南下大军在海南淘得第一桶金。之后,贾楠涉足影视投资,投身健康产业……所…

软件测试如何制作一份亮眼的简历?

简历是入职职场的一张名片,也是进入职场的一块“敲门砖”。从某种角度说,简历也是一张专业人员的说明书。 在互联网行业,如果你在一线企业任职、是业内大佬、技术大牛,基本上大把的高薪工作等你来挑。但是对于转行的小白来说&…

【产品实习评审】对推电影项目核心推荐功能的交互设计比较到位

大家好,本篇文章分享【校招VIP】免费商业项目“推电影”第一期电影详情模块产品同学的原型图周最佳作品。该同学来【莱顿大学】“数学”专业。 1、本项目是基于年轻人的喜好,更个性的电影推荐网站。筛选各分类的知名电影,并给出推荐理由和下…

Python in Visual Studio Code 2023年9月更新

作者:Courtney Webster - Program Manager, Python Extension in Visual Studio Code 排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2023 年 9 月发布! 此版本包括以下内容: • 将 Python …

2023/9/14 -- C++/QT

作业&#xff1a; 仿照Vector实现MyVector&#xff0c;最主要实现二倍扩容 #include <iostream>using namespace std;template <typename T> class MyVector { private:T *data;size_t size;size_t V_capacity; public://无参构造MyVector():data(nullptr),size(…

数据结构ArrayList

ArrayList的顶级理解 1.ArrayList的简介2.ArrayList的使用3.ArrayList的构造4.ArrayList常见操作5.ArraList的遍历5.1 普通for循环5.2 增强for循环5.3 迭代器循环 6.ArrayList的扩容机制 1.ArrayList的简介 ***ArrayList是以泛型方式实现的&#xff0c;使用时必须要先实例化Arr…

4.zigbee开发,串口的应用,ADC采集

一。串口应用 0.在c盘的协议库中 拷贝sampleApp 1.串口的初始化 1.找到初始化 2.在这个函数中加入函数初始化 //串口初始化halUARTCfg_t uart_Config;uart_Config.configuredTRUE;uart_Config.flowControlFALSE;uart_Config.baudRateHAL_UART_BR_115200;HalUARTOpen(HAL_UART_…

laravel-admin联动选择展示时ueditor样式错乱

问题 录入内容时&#xff0c;根据资源类型&#xff0c;展示不同的需要录入的内容&#xff0c;很常见的功能&#xff0c;但是在切换时&#xff0c;编辑器一直出不来&#xff0c;如图&#xff1a; 代码如下&#xff1a; $form->radio(type, 资源类型)->when(2, function…