面试题 :Unity编辑器基础

news2024/11/24 17:27:55

 

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 同级索引

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

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

相关文章

【Meetup 预告】OpenMLDB + MaxCompute:集成打通云上生态,高效构建 AI 应用

2022年12月3日(周六)上午10:00-12:00,开源机器学习数据库 OpenMLDB 第八期 Meetup 将通过线上直播的形式展开。 活动背景 数据的爆发式增长为 AI 应用的繁荣提供了坚实的基础,而云服务作为新一代快速整合、高效计算的…

STC-Seg:首个超越PointTrack的弱监督视频MOTS算法

弱监督视频多目标实例分割新SOTA(代码已开源): Paper: Solve the Puzzle of Instance Segmentation in Videos: A Weakly Supervised Framework with Spatio-Temporal Collaboration Code: https://github.com/ylqi/STC-Seg 众所周知&#xf…

linux之syslog使用说明

syslog 系统日志应用 1) 概述 syslog默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。程序,守护进程和内核提供了访问系统的日志信息。因此,任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息。 几乎所有的网络设…

【2台真机实战--Redis一主一从两哨兵配置集群和主从切换】

2台真机实战--Redis一主一从两哨兵配置集群和主从切换前言实战真实环境节点分布配置主服务器(192.168.137.23)配置redis.conf配置sentinel.conf从服务器(192.168.137.24)配置redis.conf配置sentinel.conf启动redis整合SpringBoot配…

[附源码]Node.js计算机毕业设计服装销售商城系统Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

python之路 socket、socket server

一、socket socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也 称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Inter…

nodejs+vue大学生企业推荐系统vue

1、 node_modules文件夹(有npn install产生) 这文件夹就是在创建完项目后,cd到项目目录执行npm install后生成的文件夹,下载了项目需要的依赖项。 2、package.json文件 此文件是项目的配置文件(可定义应用程序名,版本&am…

Java基础之并发理论基础

Java基础之并发理论基础一、为什么需要多线程二、线程不安全1、三要素之一可见性(CPU缓存引起)2、三要素之一原子性(分时复用引起)3、三要素之一有序性(重排序引起)一、为什么需要多线程 CPU 增加了缓存&a…

springcloud3 EurekaServer集群的搭建1

一 EurekaServer集群搭建 1.1 逻辑流程 服务的注册与发现 服务注册:向注册中心进行注册登记。 服务发现:从注册中心中获取服务器信息。 整个流程 1.首先eurekaServer先进行启动, 2.服务提供者开始启动并将自己的信息注册到EurekaServer上(前…

如何获取java加载器和类完整结构的方法?

类加载器的作用与类缓存: 类加载器的作用:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口。 …

红绿灯(交通信号灯)检测数据集

深度学习目标检测:红绿灯(交通信号灯)检测数据集 目录 深度学习目标检测:红绿灯(交通信号灯)检测数据集 1.红绿灯数据集说明 (1)Traffic-Lights-Dataset-Domestic (2)Traffic-Lights-Dataset-Foreign …

第12部分 交换机基本配置

目录 12.1 交换机简介 12.2 实验1:交换机基本配置 1.实验目的 2.实验拓扑 3.实验步骤 12.3 实验2:交换机端口安全 1.实验目的 2.实验拓扑 3.实验步骤 4.实验调试 12.4 实验3:交换机的密码恢复 1.实验目的 2.实验拓扑 3.实验步骤…

React学习8(新旧生命周期)

组件的生命周期(旧) react生命周期(旧) 1.初始化阶段:由ReactDOM.render()触发---初次渲染 1.constructor(){} 2.componentWillMount() {} 3.render() {} 4.componentDidMount() {}----常用,一般在这个钩子…

ElasticSearch的数据存储及写入原理

数据存储 数据存储介绍 Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。 为了方便大家理解,我们将 Elasticsearch 里存储文档数据和关系型数据库 MySQL 存储数据的概念进行一个类比。 注意:Types 的概念已经被逐渐弱化&…

上海亚商投顾:沪指全天窄幅震荡 大消费板块再掀涨停潮

上海亚商投顾前言:无惧大盘大跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪沪指全天窄幅震荡,创业板指高开低走。医药股大幅分化,新华制药6连板,股价创出历…

软件测试丨单元测试框架怎么搭?新版的Junit5有哪些神奇之处?

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。 总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部…

12306接口采集

铁路客户服务中心https://kyfw.12306.cn/otn/leftTicket/query?leftTicketDTO.train_date2022-12-22&leftTicketDTO.from_stationCQW&leftTicketDTO.to_stationETW&purpose_codesADULT请求头 Accept: */* Accept-Language: zh-CN,zh;q0.9 Cache-Control: no-cach…

高并发编程之JUC 三大辅助类和读写锁

7 JUC 三大辅助类 JUC 中提供了三种常用的辅助类,通过这些辅助类可以很好的解决线程数量过 多时 Lock 锁的频繁操作。这三种辅助类为: • CountDownLatch: 减少计数• CyclicBarrier: 循环栅栏• Semaphore: 信号灯 下面我们分别进行详细的介绍和学习…

JavaScript基础之循环

1、循环 1.1、for循环 语法结构: for(初始化变量; 条件表达式; 操作表达式 ){//循环体 } 名称作用初始化变量通常被用于初始化一个计数器,该表达式可以使用 var 关键字声明新的变量,这个变量帮我们来记录次数。条件表达式用于确定每一次循…

Java on Azure Tooling 11月更新|远程调试支持与 App Settings 增强

作者:Jialuo Gan Program Manager, Developer Division at Microsoft 排版:Alan Wang 大家好,欢迎回到11月的 Java on Azure Tooling 的更新。在这次更新中,我们将引入对 Azure Spring Apps 和 Azure Function Apps 的远程调试支持…