zoukankan      html  css  js  c++  java
  • U3D面试五

    U3D面试题

    配置Unity3D调试环境

    Visual Studio Tools for Unity

    访问http://unityvs.com

    安装对应的版本

    使用方法(生成项目文件,如何调试)

    Array(数组)List<T>的异同点?
    相同点:

    存储一组类型相同的数据

    都可以通过”[i]”数组访问符获取内部数据

    不同点:

    Array声明时需要指定固定的大小,且以后再也无法改变大小;List<T>声明时无需设定大小,且以后可以Add和Remove元素。

    Unity3D常用的组件有哪些?
    1)Transform组件(Transformers变形金刚)

    2)Camera 摄象机组件

    3)Collder 碰撞器组件
    4)Renderer 渲染器组件(Teach---Teacher)
    5)RigidBody 刚体组件
    6)CharacterController 角色控制器组件
    7)AudioListener 音频监听器(耳朵)
    8)AudioSource 音频源(喇叭)

    Unity3D里的游戏对象(GameObject)有哪些属性?
    1)name 名字
    作用:对对象进行标识
    2)tag 标签
    作用:对对象进行分组(Group)
    3)layer 层
    作用:1.射线投射2.摄象机裁剪

    Unity3D中实现UI有哪几种技术?
    1)GUI(绝对布局),GUILayout(自动布局)
    特点:只能在OnGUI函数中使用。
    2)NGUI (Next-Gen UI)
    中文:下一代通用的UI系统
    特点:80%的游戏都采用
    3)UGUI (Unity3D GUI)
    GUI:Game User Interface


    NGUIUI动画怎么实现?
    动画:在一段时间以内,对象的某个属性值从一个状态过渡到另外一个状态。
    实现:使用TweenWidth,TweenHeight,TweenRotation等Tween组件,并调用PlayForward或PlayReverse方法。

    OnGUI里面可以使用的函数?

    OnGUI特点:绘制界面
    可用函数:GUI.Label(),GUI.Button(),GUI.DrawTexture()

    什么是3D渲染管线?
    CPU:中央处理器(Central Processing Unit)
    GPU:图形处理器(Graphic Processing Unit)
    渲染管线:把3D物体变成2D图形的处理管道线路

    Unity3D如何播放视频?

    1)3D空间:在3D对象的Renderer组件上播放

    2)2D空间:通过GUI.DrawTexture绘制到屏幕上

    C#中命名空间如何写?作用是什么?
    申明:namespace  AA.BB.CC
    使用:using  AA.BB.CC
    作用:对类进行逻辑分组,避免类名冲突

    C#静态与非静态成员变量的区别是什么?

    静态:静态成员被所有该类的实例所共享(公共设施)

    非静态:非静态成员只属于当前类的实例(自家设施)

    C中的delegate是什么?作用是什么?

    C#的关键字(类似if,while,public)
    作用:声明一个委托类型

    C#中什么是重写(override)

    目的:覆盖父类中声明为可被覆写的成员
    方法:
          1)父类成员是抽象成员(abstract)

          2)父类成员标记为virtual 成员
          3)子类中使用override关键字重写

    函数原型和函数签名有啥区别?

       函数原型 可以定义委托

       函数签名 可以方法重载

           

    图像中的RGBA指的什么?

       定义:用4个字节(32位)来定义一个像素。R:Red;G:Green;B:Blue;A:Alpha

            

    游戏中的常用的寻路算法有哪些?

    2D:AStar(A*) 算法
    3D:网格寻路算法,WayPoint(路点)算法

    Unity3D中如何判断两个物体发生碰撞?

    双方都需要有碰撞器(Collider)

    至少一方有一个正常刚体

    游戏中的摄像机的作用是什么?什么情况下需要多个摄像机?

     作用:选取当前镜头中需要显示的多边形,采用技术包括:遮挡剔除(被遮挡的无需显示),多边形裁剪(一 半显示一半不显示)

      用途:

          1)游戏中的小地图(右上角)

            2)使用NGUI的游戏

            3)需要多个镜头的游戏(赛车的后视镜)

    Unity3D中哪些地方使用了烘焙(bake)技术?

        1)网格寻路(为了生成寻路路径)

            2)光照贴图(提高渲染性能)

            3)遮挡剔除(提高渲染性能)

    什么叫做漫反射贴图,法向贴图,高光贴图,凹凸贴图,环境贴图?

      基本贴图:游戏模型外光的样子(位图),必须要有。

      其它贴图:物体模型添彩的技术,用于各种Shader。

    OpenGL DirectX是什么?

    DirectX:(Direct eXtension,简称DX)是由微软公司创建的多媒体编程接口。由C++编程语言实现。

    OpenGL:OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。并且是开源的。

    Unity3D中制作关卡地形的技术有哪些?

         1)官方自带的地形编辑工具(还不够强大)

         2)用第三方的地形编辑工具(特定的补充)

    Unity3D中动画系统有几种?各自特点是什么?如何配置一个模型的行走动画?

       动画种类:

       1)老版动画系统(特点:没有可视化编辑工具,全部用代码定义动画状态机)

       2)MecAnim动画系统(特点:可视化状态编辑工具;针对人形动画,可以进行目标重定向;通过动画                  参数来进行状态的过渡)

       如何配置一个模型的行走动画:

       1)导入模型
       2)进行Avatar处理(骨骼定义,肌肉匹配)

       3)编写动画控制器(定义Idle,Run状态)

       4)设置动画参数,以及动画过渡条件

       5)给对象附加Animator组件,并设置Avatar和

          动画控制器属性

    Unity中脚本可以用多种语言来写,都有什么语言?

        BOO,JavaScript,C#

       

    什么是游戏逻辑?游戏表现?游戏逻辑包括哪些内容?游戏表现包括哪些内容?

    游戏逻辑:算法逻辑(A*寻路,排序算法,这些跟技术相关),业务逻辑(商店购买,战斗逻辑,这些跟玩法相关)

    表现逻辑:跟界面有关的逻辑(登录失败给提示,血量不够血条闪动,UI动画),目的是给玩家反馈和提高用户体验。

    Unity3D协程是什么?

        1)协程不是多线程,但是可以模拟多线程。

        2)协程可以让程序异步且安全的执行。

       

    设计模式是什么?

        1)它是以面向对象(OOP)的思维方式建立起来解决软件设计问题的技术。

            2)设计模式的提出者是GOF(四人帮),他们总结了23种设计模式

            3)一个设计模式有它应用的场景(上下文),解决的在当前场景下所面对的问题。

            4)采用设计模式的程序,会让程序拥有高聚合,低耦合的特性,提高了代码的可读性,可扩展性等。

    冒泡排序算法原理是什么?

          每次循环都找出最大值或是最少值,然后依次往后再次查找最大或最小值,直到结束。

    游戏优化的方向有哪些?

    发布的程序包要小

    游戏占用的内存小

    游戏占用的CPU,GPU要小

    Unity3D如何对游戏进行优化?

    减少程序包大小

    重用图片

    九宫格(Scale9)技术

    地图(不考虑透明度的场合,使用jpeg图片)

    减少内存占用量

    2.1)使用对象池(ObjectPool)

    2.2)动态加载需要的素材

    减少CPU,GPU的负担

    3.1)对代码优化(尽量减少执行的指令)

    3.2)对场景使用光照贴图

    3.2)对场景使用遮挡剔除


      

  • 相关阅读:
    自定义服务与调用--------factory
    如果没有开启keepalive 默认发送等超时
    你知道数据中台,但你肯定没听过报表中台,我靠它征服百万数据人
    数据库规范化:模式分解算法(3NF,BCNF分解,附带口诀,通俗易懂)
    直播丨 SQL大赛冠军怀晓明:深入解析Oracle存储过程中的性能瓶颈
    数据库服务器主机重启故障诊断分析
    不看可惜!无需代码,小白都会的可视化大屏,领导不重用你都难
    Docker 安装 ActiveMQ 修改账号密码
    使用Hexo 搭建你的技术博客
    【LeetCode】235.二叉搜索树的最近公共祖先(递归+迭代,详细图解,java实现)
  • 原文地址:https://www.cnblogs.com/allyh/p/9350287.html
Copyright © 2011-2022 走看看