Unity3D GUILayOut 的UI穿透问题

Unity面试题(含答案)

先首先说一下 这个面试的题是转载的 非个人整理 

我个人感觉非常有必要在面试之前大体看一下  并且也建议大家看一下 在应聘之前做好准备

我的个人经历:在面试的时候遇到的题 大多这里都有 事后超后悔 所以自己整理了一下 方便下次面试

mono是.net的一个开源跨平台工具,就类似java虚拟机,java本身不是跨平台语言,但运行在虚拟机上就能够实现了跨平台。.net只能在windows下运行,mono可以实现跨平台跑,可以运行于linux,Unix,Mac OS等。

Unity的脚本语言基于Mono的.Net平台上运行,可以使用.NET库,这也为XML、数据库、正则表达式等问题提供了很好的解决方案。Unity里的脚本都会经过编译,他们的运行速度也很快。这三种语言实际上的功能和运行速度是一样的,区别主要体现在语言特性上。JavaScript、 C#、Boo

Framework CLR 的,在可移植性,可维护性和强壮性都比C++ 有很大的改进。C# 的设计目标是用来开发快速稳定可扩展的应用程序,当然也可以通过Interop 和Pinvoke 完成一些底层操作。

四十:结构体和类有何区别?

结构体是一种值类型,而类是引用类型。(值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。)那么结构体就是当成值来使用的,类则通过引用来对实际数据操作

ref和out参数的效果一样,都是通过关键字找到定义在主函数里面的变量的内存地址,并通过方法体内的语法改变它的大小。不同点就是输出参数必须对参数进行初始化。

ref必须初始化,out 参数必须在函数里赋值。ref参数是引用,out参数为输出参数。

四十二:C#的委托是什么?有何用处?

委托类似于一种安全的指针引用,在使用它时是当做类来看待而不是一个方法,相当于对一组方法的列表的引用。用处:使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。与C或C++中的函数指针不同,委托是面向对象,而且是类型安全的。

选择排序,冒泡排序,快速排序,插入排序,希尔排序,归并排序

射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。

四十五:Unity中,照相机的Clipping Planes的作用是什么?调整Near、Fare两个值时,应该注意什么?

剪裁平面 。从相机到开始渲染和停止渲染之间的距离。

四十六:如何让已经存在的GameObject在LoadLevel后不被卸载掉?

四十九:简述四元数的作用,四元数对欧拉角的优点?

13.下列关于光照贴图,说法错误的是?(C)

A.使用光照贴图比使用实时光源渲染要快

B.可以降低游戏内存消耗

C.可以增加场景真实感

D.多个物体可以使用同一张光照贴图

14.如何为物体添加光照贴图所使用的UV?(B)

A.不用添加,任何时候都会自动生成

C.更改物体导入设置,勾选“Swap UVs”

17.关于Vector3的API,以下说法正确的是?(C)

18.下列那些选项不是网格层属性的固有选项?(B)

       物理引擎就是在游戏中模拟真实的物理效果,比如,场景中有两个立方体对象,一个在空中,一个在地面上,在空中的立方体开始自由下落,然后与地面上的立方体对象发生碰撞,而物理引擎就是用来模拟真实碰撞的效果。

       如果需要让模型感应物理引擎的效果,需要将刚体组件或角色控制器组件添加至该对象中。

       刚体是一个非常重要的组件,新创建的物体默认情况下是不具有物理效果的,而刚体组件可以给物体添加一些常见的物理属性,比如物体质量、摩擦力和碰撞参数等,这些属性可用来真实的模拟该物体在3D游戏世界中的一切行为。

  运行后可以发现,添加了刚体的红色cube感应到了物理效应,会从空中落下。而蓝色cube依然是静止不动的

  可以看到Inspector可以看到Rigidbody包含的属性,简单的看下几个属性的含义,详细的可以看手册

   力是物理学中一个非常重要的元素,其种类有很多,刚体组件可以受力的作用,

比如给刚体施加一个X轴方向的力,那么该刚体绑定的物体将沿X轴方向向前移动,

这就好比用力将物体仍出去一样,该物体会以抛物线的形式移动,而不是呆板的做匀速平移 。

     1:普通力,通过设定里的方向和大小,相当于把力施加在物体的重心上。

     2:位置力,需要设定目标点的位置,该物体就朝向这个目标位置施加力。

还是拿之前的那个列子做演示。在Hierarchy视图中创建两个Sphere,红色的添加普通力,白色的添加位置力

红色Cube当作位置力的目标对象。即向该位置发射一个位置力

1:创建脚本。定义三个变量:

2:GUI绘制两个Button,分别控制“普通力”和“位置力”逻辑代码

12 //在c位置施加一个位置力,targetPos将会向这个位置移动

3:脚本挂载到Camera上。给变量拖拽赋值。运行看效果.

  运行游戏,刚体会受物理效应会往下落

  1:当单击普通力。红色球体会往天空弹起,因为它有刚体。最终还是外往下落。

  2:当单击位置力。白色球体会朝着红色方块位置添加力。最终移动到这个位置。

  3:当改变红色cube坐标后。目标位置也跟着移动。

说了这么多。那AddForce和AddForceAtPosition到底有什么区别呢?我也是跟着学。跟着看手册,

也许只有等以后知道了它运用在什么逻辑代码中。就自然而然了解了。

1: 添加一个力到刚体。作为结果刚体将开始移动。

2:在position位置应用force力。作为结果这个将在这个物体上应用一个力矩和力。

力矩?是什么。这个我也犯迷糊。不过在手册手看到这样一个函数

AddTorque:添加一个力矩到刚体。作为结果刚体将绕着torque轴旋转。

手册上函数有很多。有兴趣的可以自己去测试,等下把手册给大家。我也是网上下载的。

   刚体与物体之间是存在碰撞的,一旦刚体开始移动,就可以在系统方法中监听刚体的碰撞状态,碰撞分为三种:

我们通过一张图片来了解

  游戏对象如果需要感应碰撞,那么必须给其添加碰撞器,默认情况下,创建游戏对象时,会自动将碰撞器添加到其中。

在碰撞器之间可以添加物理材质,用于设定物理碰撞后的效果,它将将开始

相互反弹,反弹的力度是有物理材质决定的。

unity标准资源包中提供了一些物理材质的资源,我们可以导入到当前工程中

好。我们可以看出之前的游戏中,球体下落是立即禁止的。

现在给之前的Plane添加弹性材质,运行游戏

可以看到刚体在弹性材质的作用下。会反弹

 2:对于双方都要检测的物体,至少其中一个必须是刚体。

 3:如果刚体是运动的,那么在双方都没有设置碰撞体的 Is Trigger属性的时候,

4:如果至少一个碰撞体Is Trigger被设置,那么双方可以通过OnTriggerEnter检测碰撞

刚接触unity3d不久。这是记录下今天学习的知识,有什么不对的地方请多多指教!!

我要回帖

更多关于 3D按不了是什么问题 的文章

 

随机推荐