分享我的2014年3月unity3d面试题与参考答案
今年3月份面试unity3d游戏程序,先做的面试题,然后人事问了我几个之前游戏开发的问题,问我英语怎么样等等,介绍了公司情况和对unity3d程序的要求。之后就回来了,总共面了不到1个半小时吧。笔试答得不好。下面分享一下这次我的unity3d笔试题,答案是我做的,如果有什么错误或者更好的回答,欢迎大家吐槽纠正。
1、C#程序题
private static void aaa(int x) { x = 10; } private static void bbb(ref int x) { x = 10; } static void Main(string[] args)
{ int x = 0; aaa(x); //现在x的值是:___
bbb(ref x); //现在x的值是:___ }
答案:0,,10。
详细解答:一个是复制一份值过去,一个是把地址传过去
2、英文翻译题(把下面文字翻译成中文)
Transform.LocalPosition
var localPosition:Vector3;
Description:
Position of the transform relative to the parent transform.
If the transform has no parent,it is the same as Transform.position.
Note that the parent transform's world rotation and scale are applied to the local position when calculating the world position.This means that while 1 unit in Transform.position is always 1 unit in transform.localPosition will get scaled by the scale of all ancestors.
描述:
相对于父级的变换的位置。
如果该变换没有父级,那么等同于Transform.position。
注意当计算世界的位置时,父级变换的世界旋转和缩放被应用到自身的位置。意思是说Transform.position的1个单位是1个单位,Transform.localPosition的1个单位将由所有祖先的缩放获得缩放,简单来所自身位置的1单位将受它所有上级的缩放影响。
详细解答:文章来自于《unity圣典》,参考http://game.ceeger.com/Script/Transform/Transform.localPosition.html
3、U3D提供了一个用于保存读取数据的类,(playerprefs),请列出保存读取整形数据的函数。
答案:PlayerPrefs.SetInt();
详细解答:
PlayerPrefs类可保存与读取3种基本的数据类型,它们是浮点型、整形和字符串型,涉及的方法如下:
SetFloat();保存浮点类型
SetInt();保存整形
SetString();保存字符串型
GetFloat();获取浮点类型
GetInt();获取整形
GetString();获取字符串
4、请简述向量点乘的含义:
向量u点乘向量v;u的长度与v在u上的投影长度的乘积,它是一个标量,而且可正可负。
物理意义:叉乘 点乘,也叫向量的内积、数量积。顾名思义,求下来的结果是一个数。 向量a·向量b=|a||b|cos<a,b> 在物理学中,已知力与位移求功,实际上就是求向量F与向量s的内积,即要用点乘。 叉乘,也叫向量的外积、向量积。顾名思义,求下来的结果是一个向量,记这个向量为c。 |向量c|=|向量a×向量b|=|a||b|sin<a,b> 向量c的方向与a,b所在的平面垂直,且方向要用“右手法则”判断(用右手的四指先表示向量a的方向,然后手指朝着手心的方向摆动到向量b的方向,大拇指所指的方向就是向量c的方向)。 因此 向量的外积不遵守乘法交换率,因为 向量a×向量b=-向量b×向量a 在物理学中,已知力与力臂求力矩,就是向量的外积,即叉乘。 将向量用坐标表示(三维向量), 若向量a=(a1,b1,c1),向量b=(a2,b2,c2), 则 向量a·向量b=a1a2+b1b2+c1c2 向量a×向量b= | i j k| |a1 b1 c1| |a2 b2 c2| =(b1c2-b2c1,c1a2-a1c2,a1b2-a2b1) (i、j、k分别为空间中相互垂直的三条坐标轴的单位向量)。
参考:
http://hi.baidu.com/cly84920/item/7bc79fdf97ff4f91260ae733
http://wenku.baidu.com/link?url=9Nq1MttA0DqgPgYWYIix7hpqUTDv8ifyq4xK09LtzaWpLNxYpnsjhqU1kWS5Tg4ZiLPTAJsqCB4U3Ka_4L4lL1oKfb1yTXSHck6DX1QRrdO
5、物体发生碰撞的必要条件是什么。
答案:两个物体都必须带有碰撞器(Collider),其中一个物体还必须带有Rigidbody刚体。
6、程序题:aaa()函数的意义,以及test()执行以后在控制台输出什么?
public delegate void DoHurt();
protected DoHurt hurtCall;
public void aaa(DoHurt call)
{
this.hurtCall=(DoHurt)Delegate.Combine(this.hurtCall,call); } public void myHurt001()
{
Debug.log("调用1");
} public void myhurt002(int a,int b)
{
Debug.Log("调用2"); } public void test()
{
this.aaa(myHurt001);
this.aaa(myHurt002);
this.hurtCall(); }
答案:貌似this.aaa(myHurt002)会报错。
详细解答:如果hurtCall为null,call不为null时,hurtCall这个委托变量就指向call指向的方法,如果hurtCall不为null,call为null时,hurtCall这个委托变量就指向hurtCall指向的方法。aaa方法的参数为一个无参的委托变量,这里面指向了myHurt002,而myHurt002是一个有参数的方法。这道题欢迎探讨。
7、游戏对象B是游戏对象A的子物体,游戏对象A经过了旋转,请写出游戏对象B围绕自身的Y轴进行旋转的脚本语句,以及游戏对象B围绕世界坐标的Y轴旋转的脚本语句。
对象B围绕自身的Y轴进行旋转:B.transform.Rotate(Vector.up);
对象B围绕世界坐标的Y轴旋转:B.transform.RotateAround(Vector.up);
详细解答:transform.Rotate();用于设置模型自身旋转;transform.RotateAround();用于设置模型围绕某一个点旋转。
Vector.right:X轴方向;
Vector.up:Y轴方向;
Vector.forward:Z轴方向。
8、已知三维空间中的A、B两个点的坐标,请写出在X-Z平面上, 两个之间的距离的计算函数。
其实就是求A、B两个点在XOZ平面上的投影的距离。投影以后,Y坐标等于0,X、Z不变,AB投影的距离就是两个X坐标和两个Z坐标的差的平方的和,再开方。
9、假设一个只能火力点,它将攻击任何出现在其正前方30度内的、距离在10米之内的敌人,请为其书写开火判断AI脚本。
AI不熟悉,在研究中...
分享我的2014年3月unity3d面试题与参考答案的更多相关文章
- unity3d面试题与参考答案
1.C#程序题 1 2 3 4 5 6 7 8 9 10 11 private static void aaa(int x) { x = 10; } private static void bbb ...
- unity3d最新面试题与参考答案汇总
1.在类的构造函数前加上static会报什么错?为什么? 构造函数格式为 public+类名,如果加上static会报错(静态构造函数不能有访问修饰符)原因:静态构造函数不允许访问修饰符,也不接受任何 ...
- 无插件的大模型浏览器Autodesk Viewer开发培训-武汉-2014年8月28日 9:00 – 12:00
武汉附近的同学们有福了,这是全球第一次关于Autodesk viewer的教室培训. :) 你可能已经在各种场合听过或看过Autodesk最新推出的大模型浏览器,这是无需插件的浏览器模型,支持几十种数 ...
- 2014年6月5日 深圳 IBM 安全解决方案会议通知
2014年6月5日 深圳 IBM 安全解决方案会议通知 http://gdtesting.com/news.php?id=191 时间: 2014年6月5日 地点: 深圳大中华喜来登 议程: IBM安 ...
- 【公告】CSDN个人空间将于2014年4月20日全新改版上线
尊敬的用户: 你们好! CSDN个人空间将在2014年4月20日全新改版上线! CSDN个人空间是2008年8月推出的服务,致力于给广大用户提供在线技术分享和资料 ...
- CSDN下载频道2014年11月4日本-5日常维护公告
尊敬的用户: CSDN于2005年推出了下载服务.经过数年的发展.下载频道的用户已经为无数用户提供了帮助,分享500万的技术资源. CSDN下载频道将于2014年11月4日23点至11月5日8点进行积 ...
- 2014年11月17~11月18日,杨学明老师《企业IT需求收集和实施》内训在湖南长沙某酒店成功举办!
2014年11月17至18日,受湖南某软件企业的邀请,杨学明老师<企业IT需求收集和实施>内训在某长沙某五星级酒店成功举办!来自全国各地的IT高管和企业负责人参加了此次培训.杨学明老师分别 ...
- CSDN下载频道于2014年7月17日改版,23日-24日系统维护
尊敬的用户你们好: CSDN于2005年推出了下载服务,经过数年的发展,下载频道的用户已经为无数用户提供了帮助.分享500万的技术资源. 感谢用户们的资源共享精神,以及对CSDN下载频道的支持 下载频 ...
- [Erlang 0122] Erlang Resources 2014年1月~6月资讯合集
虽然忙,有些事还是要抽时间做; Erlang Resources 小站 2014年1月~6月资讯合集,方便检索. 小站地址: http://site.douban.com/204209/ ...
随机推荐
- jq简单选项卡
function tabControl(obj,elm){ $(obj).hover(function(){ $(this).addClass('active').siblings().removeC ...
- ASP.NET MVC- 数据验证机制
ASP.NET MVC的数据验证机制,比起ASP.NET WEBFORM那种高效很多.下面记录以下两个示例,以便日后方便查阅. 方式一:在Controller里通过AddModelError方法返回错 ...
- VS 2012单元测试和测试资源管理器
时间:2012-08-27 17:29 来源:张善友 博客园 字体:[大 中 小] 现在您可以在您的项目当中自行选择 NUnit 或是 xUnit 之类的套件. 而且这次的测试资源管理器也完全以”信息 ...
- GUI图形界面
一.界面元素 1.首层容器:Jwindow.JFrane(窗体).JDialge(对话框).JApplet. 2.组件:标签.文本框.密码框.按钮.下拉列表.单选框.复选框.文本域等 注:标签JLab ...
- Mysqlbinlog使用
Mysqlbinlog使用 1.binlog日志打开方法 在my.cnf这个文件中加一行(Windows为my.ini).#vi /etc/my.cnf[mysqld]log-bin=mysqlb ...
- android开发在adapter中使用反射添加元素
android开发中最常用的控件之一就是listview,伴随listview还要有adapter和放入适配器的item.然后假设其中有一部分item的生成符合一定规律,Item item = new ...
- JQuery的Ajax使用Get,Post方法调用C#WebService并返回数据
本文将介绍jQuery调用基于.NET Framework 3.5的WebService返回JSON数据,另外还要介绍一下用jQuery调用WebService的参数设置及设置不当所出现的问题,还有出 ...
- iOS UIButton EdgeInsets
说一下系统的button,image 和 title的位置关系 默认image 和 title的位置关系: 随便画了草图,有点丑,不过不妨碍理解: 第一种:在button上只设置文字,这个时候,but ...
- centos6.4上安装phpmyfaq
phpmyfaq真是奇怪呀,官网上只能下载到当前的版本,无法下载以前的版本.官网为:http://www.phpmyfaq.de/ 官网上没有phpmyfaq的安装方法,我在网上找了下,这就个文章还比 ...
- (字符串的模式匹配4.7.18)POJ 2406 Power Strings(求一个字符串的最小重复串)
注意,在IDE运行时,可能会因为开的数组太大而报错,这时我们可以把数组开小一点来进行调试....提交的时候把数组的大小改成1000005即可.... #include <iostream> ...