在Unity游戏开发在面试时会面试哪些内容?
1、请描述游戏动画有几种,以及其原理。 关键帧动画:每一帧动画序列当中包含了顶点的空间位置信息以及改变量,然后通过插值运算,得出动画效果。选中某一游戏对象,创建animation,添加属性Transform,MeshRender、collider。还可以添加关键帧,在关键帧上Add Animation Event事件。 骨骼动画:模型当中有一个骨骼结构层次的对象,存储了各个骨骼在空间内的位置信息。皮肤蒙皮附着在骨骼上,决定了角色的外观,每一个顶点数据都会随着多个骨骼影响而改变,从而实现动画效果。创建animator将各个动画拖入到动画状态机当中,设置参数,连接各个动画状态,在通过脚本控制来实现动画控制 关节动画:了解不多,是骨骼动画的前身,模型分成N个部分网格,分成部分动画,组成一个整体动画
2、Avator的作用 用户提供的模型骨架和Unity的骨架结构进行适配,是一种骨架映射关系。 方便动画的重定向 AnimationType有三种类型 Humanoid人型:可以动画重定向,游戏对象挂载animator,子类原始模型+重定向模型,设置原始模型和使用模型的AnimationType为Humanoid类型 Generic非人型 Legacy旧版 Avator Mask身体遮罩,身体某一部分是否受到动画影响 反向动力学 IK,通过手或脚来控制身体其他部分
对惹,这里有一个游戏开发交流小组,大家可以点击进来一起交流一下开发经验呀!
3、物体发生碰撞的必要条件 物体A有(Collider和Rigidbody)或者CharacterController,物体B有collider rigidbody完全受物理引擎影响 CharacterController物理引擎影响受限制
4、GUI与UGUI的优点和缺点 UGUI所见即所得,UGUI使用Canvas和事件系统,UGUI还能自适应屏幕 GUI在脚本周期中使用OnGui函数,通过脚本代码控制。OnGui性能消耗大,每一次渲染都是一个DrawCall 在手游端都在寻求原生GUI的替代方案
5、一个场景放置多个carmera并同时处于活动状态,会发生什么 多个Camera渲染画面,受到Camera组件的属性ClearFlag、CullingMask和Depth的影响,影响最终的合成画面。
6、使用过哪些插件 shader graph制作shader光影效果 cinemachine+timeline+postprocessingstack制作过场动画 nodecanvas制作怪物ai easytouch手游触摸控制
7、U3D 中用于记录节点空间几何信息的组件名称,及其父类名称 Transform继承于Component继承于Object 常用脚本继承类关系 链接: 参考资料.
8、请简述如何在不同分辨率下保持 UI 的一致性 Canvas画布设置组件CanvasScaler的分辨率模式为Scale with screen size,保持画布一定比例下随屏幕改变,画布进行缩放。 UI位置的一致性通过设置锚点,Anchor Presets锚点预设
9、MeshFilter、MeshRender 和 SkinnedMeshRender 的关系与不同 MeshFilter网格过滤器,通过mesh属性获取模型网格 MeshRender网格渲染器,渲染Material,lighting,probe探针 SkinnedMeshRender蒙皮网格渲染器,渲染人物模型,渲染基本属性,材质,光照,探针,其他设置属性 Unity换装主要是切换Mesh、root bone和材质贴图
10、简述 SkinnedMesh 的实现原理 SkinnedMesh蒙皮网格动画 分为骨骼和蒙皮两部分 骨骼是一个层次结构,存储了骨骼的Transform数据 蒙皮是mesh顶点附着在骨骼之上,顶点可以被多个骨骼影响,决定了其权重等, 还有将顶点从Mesh空间变换到骨骼空间~
11、Prefab 的作用?Editor下动态创建Prefab的方式? prefab是素材,模型,贴图,shader等默认配置的集合体,便于修改 prefab已经被序列化存储在二进制文件当中,方便传输,方便打包导出的操作 prefab是一个模板,方便进行实例化 团队协作的便捷性
使用脚本publci字段,直接将prefab拖拽到这个字段下 Asset文件夹下,创建Resource文件夹,prefab放入,在代码里使用Resource.load(“prefab名称”)
12、如何销毁一个 UnityEngine.Object 及其子类 Destroy
13、为什么 Unity3D 中会发生在组件上出现数据丢失的情况? 组件被删除了
14、如何安全的在不同工程间安全地迁移 asset 数据?三种方法 导出包export package 将assets文件夹和libarary文件加一起迁移 unity自带的assets server功能 (不懂这个功能,上面两个方法用的多)
15、MeshCollider 和其他 Collider 的一个主要不同点? MeshCollider是基于顶点数据,片面组成,消耗性能 BoxCollider是基于算法的,性能好
16、当一个细小的高速物体撞向另一个较大的物体时,会出现什么情况?如何避免? fixedupdate中代码控制,代码中两个位置进行射线检测,射线碰撞信息 增加碰撞体体积,射线穿过,射线长度增加 rigidbody刚体设置两个参数Interpolate急速插值和CollisionDetection碰撞检测
17、MeshRender 中 material 和 sharedmaterial 的区别? 两者是MeshRender的属性 sharedMaterial 是共用的 Material,称为共享材质。修改共享材质会改变所用使用该材质的物体,并且编辑器中的材质设置也会改变。 material 是独立的 Material,返回分配给渲染器的第一个材质。修改材质仅会改变该物体的材质。如果该材质被其他的渲染器使用,将克隆该材质并用于当前的渲染器。
18、用 u3d 实现 2d 游戏,有几种方式? 摄像机改为正交模式 使用引擎改为2D系统 使用UGUI
19、u3d 中碰撞器和触发器的区别? 碰撞器有碰撞效果,触发器会穿过,但能检测到 collider设置属性isTrigger为True OnCollisionEnter/Stay/Exit OnTriggerEnter/Stay/Exit 触发器可以用来检测物体是否经过某片空间
20、CharacterController 和 Rigidbody 的区别 CharacterController一般用在人型角色,继承于Collider,可以认为是受限的Rigidbody Rigidboy完全受物理引擎影响,质量,阻力等属性,Is Kinematic不受物理引擎影响,通过代码改变Transform。
21、什么叫做链条关节 Hinge Joint,模拟两个物体之间有一个链条连接 在某个距离内只会发生移动不产生作用力,类似门的效果 超过某个距离会产生拉力,弹簧的效果
22、unity3d 提供了几种光源,分别是什么 Direction平行光 Point点光源 Spot聚光灯 Area区域光(烘焙用)
23、动画层(Animation Layers)的作用是什么? 动画分层 身体部位动画分层,比如我只想动动头,身体其他部分不发生动画 可以方便处理动画区分
24、Material 和 Physic Material 区别? 物理材质:处理物理效果,比如滑动摩擦力,静态摩擦力,反弹等属性 Material就是普通的贴图
25、什么是导航网格( NavMesh)? 用于自动寻路的网格 比如A*寻路 链接: 更加详细的参考资料.
26、Unity 摄像机有几种工作方式,分别是什么? 正交模式和透视模式
27、UGUI相关概念 UGUI锚点,相对于父对象,屏幕自适应 UGUI分为世界坐标和屏幕坐标 UGUI的Image可以使用material UGUI不需要绑定collider,UI事件会拦截 UGUI通过Mask来裁剪 UGUI顺序根据Hierarchy顺序,越下面渲染在最上层
28、Unity3d中static batching和dynamic batching 各有什么用? 动态批处理和静态批处理,都是在一定条件下,对多次的DrawCall请求进行合并处理,减少CPU的DrawCall数量,达到提高性能的目的
静态批处理将静态的游戏对象组合成大网格(不移动) 对游戏对象Static属性设置成batching static , 前提要共享材质且不移动,不缩放,不旋转
动态批处理是将很小的网格,将类似的顶点组合到一起,一次性绘制 不需要任何操作,可以旋转,缩放,移动 前提是共享材质,且不包含900顶点不超300顶点网格
29、Unity3d中Awake和Start 谁先执行,update和fixedUpdate 有什么区别? awake先执行,一般用来初始化成员变量 start设置物体属性和渲染 fixedUpdate固定帧渲染,用于更新渲染物理引擎 update帧渲染,用于更新操作
30、向量的运算有哪些?Unity有哪些API可以计算 加法减法:物理上计算两个力的合力或者几个速度分量的叠加Vertor3(a1+b1,a2+b2,a3+b3) 数乘:向量与一个标量相乘,变量的正负,表示方向的正反方向变化,对向量的长度进行缩放 点乘:a点乘b得到一个标量,集合意义是a和b长度相乘再乘以两者夹角的余弦 叉乘:a叉乘b得到一个新向量,满足unity的左手坐标系
Vector3类 单位化normalized 向量长度magnitude 叉乘cross 点乘 dot 两向量夹角 angle 距离 distance 投影 project
31、UI面板层级管理 如果分为三层结构,可以使用Unity自带的Api在Hierarchy Transofrm类 SetAsFirstSiBling 列表开头 SetAsLastSiBling 列表最后 SetSiBlingIndex 同级索引
相关文章:
在Unity游戏开发在面试时会面试哪些内容?
1、请描述游戏动画有几种,以及其原理。 关键帧动画:每一帧动画序列当中包含了顶点的空间位置信息以及改变量,然后通过插值运算,得出动画效果。选中某一游戏对象,创建animation,添加属性Transform࿰…...
刘艳兵-DBA022-以下关于Oracle半连接的描述,哪些是正确的?
以下关于Oracle半连接的描述,哪些是正确的? A SQL中的NOT EXISTS子查询,通常会被转换为对应的半连接。 B SQL中的IN子查询,通常会被转换为对应的半连接。 C 半连接会去重 D SQL中的EXISTS子查询,通常会被转…...
人工智能与伦理:我们应该如何平衡科技与人性?
内容概要 在这个瞬息万变的时代,人工智能的迅猛发展让我们面对前所未有的伦理困境。科技进步带来了便利,但同时也亟需我们反思如何对待人性。尤其是在实现算法透明性时,我们要确保每一个决策背后都能被理解与追溯,这不仅是对技术…...
CRON组件一个复杂的一个简单的
CRON组件一个复杂的一个简单的 一个是复杂点的一个是简单点。 1.以简单的为例使用: 父组件 import CronSimple from "/views/xxx/components/cron-simple/index.vue";components: {CronSimple}<el-dialog title"调度CRON"v-if"cronV…...
自定义日志打成jar包引入项目后不生效
背景:写了一个请求响应日志包,打包后在另一个项目使用pom引入后不生效 package com.example.qqllog.aspect;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean;…...
RK3568平台开发系列讲解(中断篇)延迟工作实验
🚀返回专栏总目录 文章目录 一、什么是延迟工作二、 struct delayed_work三、延迟工作相关接口函数3.1、初始化延迟工作函数3.2、调度/取消调度 延迟工作函数四、驱动程序编写沉淀、分享、成长,让自己和他人都能有所收获!😄 一、什么是延迟工作 延迟工作是一种将工作的执…...
RabbitMQ 的集群
大家好,我是锋哥。今天分享关于【RabbitMQ 的集群】面试题?希望对大家有帮助; RabbitMQ 的集群 RabbitMQ 是一种流行的开源消息代理,广泛用于构建分布式系统中的消息队列。随着应用程序规模的扩大,单一的 RabbitMQ 实…...
整车功能架构 --- 智能座舱
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所有人的看法和评价都是暂时的,只有自己的经历是伴随一生的,几乎所有的担忧和畏惧…...
java stream流的使用
Java中的Stream API是Java 8引入的一个重要特性,它提供了对集合对象进行各种非常便利、高效的聚合操作(aggregate operation)或大批量数据操作(bulk data operation)。Stream API借助于Lambda表达式,极大地…...
(JVM)带你一起研究JVM的语法糖功能 和 JVM的即时编译器
1. 语法糖 所谓的语法糖,其实就是指java编译器把*.java源码编译为*.class字节码的过程中,自动生成和转换的一些代码,主要是为了减轻程序员的负担,算是java编译器给我们第一个额外福利 以下代码的分析,借助了javap工具…...
【Linux】ClickHouse 部署
搭建Clickhouse集群时,需要使用Zookeeper去实现集群副本之间的同步,所以需要先搭建zookeeper集群 1、卸载 # 检查有哪些clickhouse依赖包: [rootlocalhost ~]# yum list installed | grep clickhouse# 移除依赖包: [rootlocalho…...
js的小知识
以下是一些 JavaScript 的小知识点,适合不同水平的开发者: 1. 变量声明 使用 let、const 和 var 声明变量。let 和 const 块级作用域,而 var 是函数作用域。const 声明的变量不可重新赋值,但对象的属性仍然可以修改。 2. 箭头函…...
一些swift问题
写得比较快,如果有问题请私信。 序列化和反序列化 反序列化的jsonString2只是给定的任意json字符串 private func p_testDecodeTable() {let arr ["recordID123456", "recordID2"]// 序列化[string] -> json datalet jsonData try? JSO…...
Nginx安装配置详解
Nginx Nginx官网 Tengine翻译的Nginx中文文档 轻量级的Web服务器,主要有反向代理、负载均衡的功能。 能够支撑5万的并发量,运行时内存和CPU占用低,配置简单,运行稳定。 写在前 uWSGI与Nginx的关系 1. 安装 Windows 官网 Stabl…...
汽车免拆诊断案例 | 2010款起亚赛拉图车发动机转速表指针不动
故障现象 一辆2010款起亚赛拉图车,搭载G4ED 发动机,累计行驶里程约为17.2万km。车主反映,车辆行驶正常,但组合仪表上的发动机转速表指针始终不动。 故障诊断 接车后进行路试,车速表、燃油存量表及发动机冷却温度…...
在ubuntu上安装最新版的clang
方法一: 执行如下的命令: # 下载安装脚本wget https://apt.llvm.org/llvm.sh chmod x llvm.sh # 开始下载, 输入需要安装的版本号。 sudo ./llvm.sh <version number>方法二 添加软件下载源。 请根据自己的Ubuntu系统版本添加&…...
使用Django REST framework构建RESTful API
使用Django REST framework构建RESTful API Django REST framework简介 安装Django REST framework 创建Django项目 创建Django应用 配置Django项目 创建模型 迁移数据库 创建序列化器 创建视图 配置URL 配置全局URL 配置认证和权限 测试API 使用Postman测试API 分页 过滤和排序…...
「Mac畅玩鸿蒙与硬件14」鸿蒙UI组件篇4 - Toggle 和 Checkbox 组件
在鸿蒙开发中,Toggle 和 Checkbox 是常用的交互组件,分别用于实现开关切换和多项选择。Toggle 提供多种类型以适应不同场景,而 Checkbox 支持自定义样式及事件回调。本篇将详细介绍这两个组件的基本用法,并通过实战展示它们的组合应用。 关键词 Toggle 组件Checkbox 组件开…...
Kotlin协程suspend的理解
suspend修饰符,它可以告诉编译器,该函数需要在协程中执行。作为开发者,您可以把挂起函数看作是普通函数,只不过它可能会在某些时刻挂起和恢复而已。协程的挂起就是退出方法,等到一定条件到来会重新执行这个方法&#x…...
基于AI深度学习的中医针灸实训室腹针穴位智能辅助定位系统开发
在中医针灸的传统治疗中,穴位取穴的精确度对于治疗效果至关重要。然而,传统的定位方法,如体表标志法、骨度折量法和指寸法,由于观察角度、个体差异(如人体姿态和皮肤纹理)以及环境因素的干扰,往…...
Java 语言特性(面试系列2)
一、SQL 基础 1. 复杂查询 (1)连接查询(JOIN) 内连接(INNER JOIN):返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
