我是靠谱客的博主 温婉宝马,最近开发中收集的这篇文章主要介绍Unity3D面试题整合——第五部分及答案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

第五部分

1,在类的构造函数前加上static会报什么错?为什么?

构造函数格式为 public+ 类名如果加上 static 会报错(静态构造函数不能有访问修饰符)
原因:静态构造函数不允许访问修饰符,也不接受任何参数;
无论创建多少类型的对象,静态构造函数只执行一次;
运行库创建类实例或者首次访问静态成员之前,运行库调用静态构造函数;
静态构造函数执行先于任何实例级别的构造函数;
显然也就无法使用 this 和 base 来调用构造函数。

2 , C# String 类型比 stringBuilder 类型的优势是什么 ?

如果是处理字符串的话,用 string 中的方法每次都需要创建一个新的字符串对象并且分配新的内存地址,而 stringBuilder 是在原来的内存里对字符串进行修改,所以在字符串处理方面还是建议用 stringBuilder 这样比较节约内存。但是 string 类的方法和功能仍然还是比 stringBuilder 类要强。

string 类由于具有不可变性(即对一个 string 对象进行任何更改时,其实都是创建另外一个 string 类的对象),所以当需要频繁的对一个 string 类对象进行更改的时候,建议使用 StringBuilder 类, StringBuilder 类的原理是首先在内存中开辟一定大小的内存空间,当对此 StringBuilder 类对象进行更改时,如果内存空间大小不够,会对此内存空间进行扩充,而不是重新创建一个对象,这样如果对一个字符串对象进行频繁操作的时候,不会造成过多的内存浪费,其实本质上并没有很大区别,都是用来存储和操作字符串的,唯一的区别就在于性能上。

String 主要用于公共 API ,通用性好、用途广泛、读取性能高、占用内存小。

StringBuilder 主要用于拼接 String ,修改性能好。

不过现在的编译器已经把 String 的 + 操作优化成 StringBuilder 了,所以一般用String 就可以了

String 是不可变的,所以天然线程同步。

StringBuilder 可变,非线程同步。

3 , C# 函数 Func(string a, string b) 用 Lambda 表达式怎么写 ?

答: (a,b) => {};

4, 数列 1,1,2,3,5,8,13… 第 n 位数是多少 ? 用 C# 递归算法实现

通项公式应该是 an = a(n-1) + a(n-2)

a3=2=1+1
a4=3=1+1+1
a5=1+1+1+2
a6=1+1+1+2+3
………
an=1+1+1+2+3+…+(n-2)+(n-3)
=2+(n-2)(n-3)/2 (n>=3) 这是通项公式

public int CountNumber(int num)
 {
if (num == 1 || num == 2)
  {
   return 1;
  }
   else 
  {
   return CountNumber(num -1) + CountNumber(num-2); 
  } 
}

5,一个简单的游戏,怪物会走动攻击死亡,游戏角色会走动,跳跃攻击格挡死亡,还会接受玩家从输入端输入的指令,NPC会走动,他们彼此之间可以互相通信.请画出以上三种角色的UML图示.

答:
6 , NGUI Button 怎样接受用户点击并调用函数 , 具体方法名称是什么

OnClick()

主要是在 UICamera 脚本中用射线判断点击的物体并通过 SendMessage 调用OnClick() OnPress() 等函数,可以说 NGUI 的按钮是通过发消息这个方式调用的。
7 ,怎么判断两个平面是否相交 ? 不能用碰撞体 , 说出计算方法

答:对于两个平面Ax+By+Cz+D=0与ax+by+cz+d=0,只要(A,B,C)与(a,b,c)不成比例,这两个平面就是相交的。

8, <愤怒的小鸟>给予初速度以后,怎么让小鸟受到重力和空气阻力的影响而绘制抛物线轨迹,说出具体的计算方法.

Vector3 v 代表初速度 v’ 代表现在的速度,假设小鸟是沿的 z 轴也就是transform.forward 方向运动的质量为 1 ,那么 v‘=v-new Vector3(0,g*t,f*t) ,transform.Translate(v’) 做的就是抛物线运动( g 为重力加速度不要用现实中的需要自己调试, f 为阻力也要自己调试设置, t 为时间)

建议:本文以问题题目和知识点为重,至于答案的对与错和答案的完整性,自己斟酌哦,当然你有好的答案可以告我哦,谢谢!

最后

以上就是温婉宝马为你收集整理的Unity3D面试题整合——第五部分及答案的全部内容,希望文章能够帮你解决Unity3D面试题整合——第五部分及答案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部