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

Unity3D 面试题收录

Unity3D 客户端面试题收录(持续更新~)

面试题收录

本文收录一些对于 Unity3D 客户端可能遇到的面试题(持续更新~),答案仅出于个人理解,如有偏差,希望指正。

Unity3D

MonoBehaviour 生命周期的各个回调函数

  • Awake():初始化,早于 Start() 调用。
  • Start():依赖其他对象时的初始化。
  • FixedUpdate():每个固定时间步长调用,处理物理更新。
  • Update():每帧调用,处理大多数游戏逻辑。
  • LateUpdate():每帧调用,在 Update() 之后,通常用于相机跟随。
  • OnEnable()OnDisable():在组件启用和禁用时调用。
  • OnDestroy():在对象销毁时调用。

Prefab 是什么,有何作用

Prefab(预制体) 是一种存储和复用游戏对象(GameObject)及其组件的模板。它允许你创建一个游戏对象的原型,并可以在场景中反复实例化这个对象。

Unity 常用的资源文件夹有哪些

  • Resources:任何放在 Resources 文件夹中的资源可以通过 Resources.Load() 方法在运行时加载。该文件夹的内容会被 Unity 打包进最终的游戏构建中。
  • StreamingAssets:该文件夹用于存放在运行时需要直接访问的文件(如视频、配置文件等)。在构建时,Unity 不会对其内容进行压缩或转换,保持原始格式。访问这些文件时需要使用文件路径。
  • Editor:该文件夹用于存放编辑器扩展脚本。这些脚本只能在 Unity 编辑器中使用,而不会包含在最终的游戏构建中。
  • Plugins:用于存放插件(如 DLL 文件或第三方库)。在 Unity 中,放在这个文件夹下的库会被自动识别为插件。

C#

封装、继承、多态三大面向对象特性

封装是将对象的属性和行为封装在一起,通过访问控制机制(如 privateprotectedpublic 等修饰符)来隐藏对象的内部实现细节。外部只能通过公开的方法(即公共接口)与对象进行交互,而不能直接访问对象的内部数据。这种机制提高了代码的安全性和可维护性。

继承是通过定义一个类来基于已有类扩展其功能的能力。通过继承,子类可以继承父类的属性和方法,并可以重写或扩展这些功能。继承支持代码的复用和逻辑的扩展。

多态允许不同类型的对象以统一的接口进行操作。C# 中的多态性主要体现在方法的重载(编译时多态)和方法的重写(运行时多态)。通过多态,父类的引用可以指向子类的对象,执行子类重写的方法。

重载和重写的区别

重载是一种在同一个类中定义多个同名方法,但参数不同。它提供编译时的多态性,允许方法在同名的情况下处理不同的输入。

重写是子类通过 override 关键字重新定义父类中的虚方法。它提供运行时的多态性,允许子类提供特定的实现,取代父类的行为。

委托和事件的区别

委托是 C# 中的一种类型,类似于函数指针。它允许将方法作为参数进行传递和调用。通过委托,你可以存储对方法的引用,并在需要时执行这些方法。

事件是基于委托的封装,适用于发布-订阅场景。事件只能在声明它的类内部触发,外部类不能直接调用事件,只能使用 +=-= 进行注册和取消订阅,防止了事件的误用。

Lua

pairs 和 ipairs 的区别

pairs 用于遍历所有键值对,适用于不规则的表或键为字符串的关联表,遍历顺序不固定。

ipairs 用于遍历数组形式的表,适用于数值键为连续索引的场合(从 1 开始),并在遇到第一个 nil 时停止。

如何判断一个 table 为空

在 Lua 中判断一个 table 是否为空并没有内置的函数,但可以通过遍历 table 来判断其中是否有任何元素。

一个常见的方法是使用 next() 函数来检查 table 中是否存在任何键值对。

function isTableEmpty(t)return next(t) == nil
end

next(t):返回 t 中的第一个键值对。如果 t 中没有任何元素,则返回 nil

注意:不能直接通过 #t(长度运算符)来判断表是否为空,因为 #t 只对具有 连续整数键 的数组部分有效。

也不能简单判断 t == nil,因为要判断的是 table 里面是否有元素,而不是 t 变量是否有引用。

if 0 的结果

在 Lua 中,只有 falsenil 被认为是 ,其他所有值(包括 0 和空字符串 "")都被认为是

相关文章:

Unity3D 面试题收录

Unity3D 客户端面试题收录(持续更新~) 面试题收录 本文收录一些对于 Unity3D 客户端可能遇到的面试题(持续更新~),答案仅出于个人理解,如有偏差,希望指正。 Unity3D MonoBehaviour 生命周期…...

Jrebel热部署不生效解决

打开setting找到build底下的complier勾选 build project automatically 设置自动构建项目 打开setting找到Advanced Setting勾选Complier中的第一项 Jrebel panel中勾选需要热部署的项目模块 项目配置信息:Edit Configuration中进行编辑,配置如下图…...

软件测试学习笔记丨Selenium键盘鼠标事件ActionChains

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/22515 本文为霍格沃兹测试开发学社的学习经历分享,写出来分享给大家,希望有志同道合的小伙伴可以一起交流技术,一起进步~ 说明:本篇博客基于sel…...

CI/CD(持续集成与持续交付)流水线

集成 Jenkins、GitLab Webhook、Nexus 和 RabbitMQ 可以形成一个全面的 CI/CD(持续集成与持续交付)流水线,结合消息队列可以创建事件驱动的工作流。以下是配置这四个工具以实现一个基本的 CI/CD 流程的详细步骤。 前置条件 Jenkins、GitLab、…...

分布式光伏发电有什么优劣势

分布式光伏发电是指在离电力消费地点较近的地方,通过安装光伏发电系统来发电。这种系统通常用于屋顶、地面或其他建筑物上,相比于集中式光伏发电系统,它有一些独特的优势和劣势: 优势: 地理适应性: 分布式…...

Spring Boot框架中的IO

1. 文件资源的访问与管理 在 Spring Boot 中,资源文件的访问与管理是常见的操作需求,比如加载配置文件、读取静态文件或从外部文件系统读取文件。Spring 提供了多种方式来处理资源文件访问,包括通过 ResourceLoader、Value 注解以及 Applica…...

DBeaver连接Hive教程

hive shell:通过hive shell来操作hive,但是至多只能存在一个hive shell,启动第二个会被阻塞,也就是说hive shell不支持并发操作。 基于JDBC等协议:启动hiveserver2,通过jdbc协议可以访问hive,hi…...

Vue-Router源码实现详解

1.Hash模式 hash就是url中#后面的部分hash改变时,页面不会从新加载,会触发hashchange事件,去监听hash改变,而且也会被记录到浏览器历史记录中vue-router的hash模式,主要是通过hashchange事件,根据hash值找…...

程序员节日的日期是10月24日‌程序员日

‌程序员节日的日期是10月24日。‌ 这一天被称为‌中国程序员日或‌1024程序员节,由‌博客园、‌CSDN等自发组织设立,旨在纪念程序员对科技世界的贡献。 程序员节日的由来和意义 1024程序员节的由来可以追溯到2010年,最初由网友提出设立一个…...

联邦学习中的数据异构性

在联邦学习(Federated Learning, FL)领域中, 异构数据(Heterogeneous Data) 是指不同客户端所持有的本地数据在特征分布、类别分布、数量等方面存在差异的数据。这种数据的异质性是联邦学习面临的一大挑战,…...

Python小程序 - 替换文件内容

1. 写入文件c:\a.txt 1)共写入10行 2)每行内容 0123456789 # 1 ls 0123456789 ln 10 with open("c:/a.txt", w,encodingUTF-8) as f:for i in range(ln):f.write(ls\n)######################################### 2 ln 10…...

k8s备份恢复(velero)

velero简介 velero官网: https://velero.io/ velero-github: https://github.com/vmware-tanzu/velero velero的特性 备份可以按集群资源的子集,按命名空间、资源类型标签选择器进行过滤,从而为备份和恢复的内容提供高度的灵活…...

LED户外屏:面对复杂环境的七大挑战

户外LED显示屏作为现代城市广告和信息传播的重要媒介,其应用范围越来越广泛。然而,与室内环境相比,户外环境的复杂多变对LED显示屏提出了更高的要求。本文将探讨户外LED显示屏在设计和应用过程中必须考虑的七个关键问题。 1. 高分辨率 户外LE…...

LabVIEW自动化流动返混实验系统

随着工业自动化的不断发展,连续流动反应器在化工、医药等领域中的应用日益广泛。传统的流动返混实验操作复杂,数据记录和处理不便,基于LabVIEW的全自动流动返混实验系统能自动测定多釜反应器、单釜反应器和管式反应器的停留时间分布&#xff…...

【性能优化】安卓性能优化之CPU优化

【性能优化】安卓性能优化之CPU优化 CPU优化及常用工具原理与文章参考常用ADB常用原理、监控手段原理监控手段多线程并发解决耗时UI相关 常见场景排查CPU占用过高常用系统/开源分析工具AndroidStudio ProfilerSystraceBtracePerfettoTraceView和 Profile ANR相关ANR原理及常见场…...

springboot二手图书交易系统-计算机设计毕业源码88413

目 录 摘要 1 绪论 1.1研究背景 1.2研究意义 1.3论文结构与章节安排 2 二手图书交易系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.2 非功能性分析 2.4 系统用例分析 2.5本章小结 3 二手…...

解决ElasticSearch启动成功却无法在浏览器访问问题

目录 前言: 问题复现 : 解决问题: 1、修改sysctl.conf文件 2、在sysctl.conf文件增加这段东西 3、 然后保存退出,输入以下命令使其生效 结语: 前言: 这篇文章是小白我今天突然启动es,发现e…...

稀土有色包芯线良好的导电性

稀土有色包芯线是一种结合了稀土元素和有色金属(如铜、铝、镁等)的特殊线材。以下是对稀土有色包芯线的详细介绍: 一、组成与结构 芯线:由稀土元素和有色金属组成的合金制成。稀土元素(如镧、铈、镁等)的添加量在一定范围内,以确保合金性能的…...

SIP 业务举例之 Call Forwarding Unconditional(无条件呼转)

目录 1. Call Forwarding Unconditional 简介 2. RFC5359 的 Call Forwarding Unconditional 信令流程 PS:Dialog 建立条件 Dialog 会话完全建立 3. Call Forwarding Unconditional 过程总结 博主wx:yuanlai45_csdn 博主qq:2777137742 想要 深入学习 5GC IMS 等通信知识…...

基于stm32的esp8266的WIFI控制风扇实验

实验案例WIFI控制风扇 项目需求 电脑通过esp8266模块远程遥控风扇。 项目框图 ​ 风扇模块封装 #include "sys.h" #include "fan.h"void fan_init(void) {GPIO_InitTypeDef gpio_initstruct;//打开时钟…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

调用支付宝接口响应40004 SYSTEM_ERROR问题排查

在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

逻辑回归:给不确定性划界的分类大师

想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

C++ 基础特性深度解析

目录 引言 一、命名空间&#xff08;namespace&#xff09; C 中的命名空间​ 与 C 语言的对比​ 二、缺省参数​ C 中的缺省参数​ 与 C 语言的对比​ 三、引用&#xff08;reference&#xff09;​ C 中的引用​ 与 C 语言的对比​ 四、inline&#xff08;内联函数…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制

在数字化浪潮席卷全球的今天&#xff0c;数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具&#xff0c;在大规模数据获取中发挥着关键作用。然而&#xff0c;传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时&#xff0c;常出现数据质…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...