Unity3d

1,简述值类型和引用类型的区别

  • 值类型存储在内存栈中,引用类型存储在内存堆中
  • 值类型表示实际数据,引用类型表示指向存储在内存堆中的数据的指针和引用
  • 值类型比引用类型存取速度快
  • 栈的内存能自动释放堆内存要通过.Net中GC来自动释放
  • 值类型继承自System.ValueType,引用类型继承System.Object

2,简述ArrayList和List的主要区别

ArrayList继承了Ilist接口,ArrayList会把所有插入的数据都当做Object来处理,存在不安全类型,并且装箱拆箱比较耗时。List也继承Ilist接口,是泛型类,功能和ArrayList相似,但是List被实例化时就被赋予了数据类型,比较安全,也不存在装箱拆箱等操作。


3,简述GC(垃圾回收)产生的原因,并描述如何避免。

GC产生的原因是:要回收堆上的内存。

避免:

  • 减少New产生对象的次数(因为每次New一个对象时,如果可分配的内存不足,GC就会去回收未使用的对象,但GC的操作很复杂,会占用很多CPU的时间。)
  • 使用StringBuilder代替String
  • 使用公用对象(静态成员,常量),但不能乱用,因为静态成员和常量的生命周期是整个应用程序
  • 使用对象池
4,描述Interface和抽象类之间的不同
  • 接口中定义的方法,都没有实现,需要子类一 一 去实现
  • 抽象类中可能有一些已经实现的方法,则这些方法在子类中可以不必实现,也可以再重写父类的方法。
5,使用接口的好处是什么
  • 规范代码
6,关键字Sealed用在类声明和函数声明的作用
Sealed 用在类声明前,是为了防止其他类继承,用在函数声明前,是为了防止派生类重写该函数。

7,简述private、public、protected、internal的区别
  • private 只对该类公开
  • public 对任何类和成员都公开
  • protected 对该类和该类的派生类公开
  • internal 只能在包含该类的程序集中访问该类
8,OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生?
Awake-》onEnable-》Start  OnEnable会反复发生

9,物体发生碰撞的必要条件
物体A必须带有(collider+rigidbody)或者CharacterController,另一个物体至少要有collider。

10,CharacterController 和Rigidbody的区别
Rigidbody具有完全真实的物理特性,而CharacterController可以说是受限的Rigidbody,具有一定的物理效果,但不完全真实。

11,物体发生碰撞时,有几个阶段?
三个阶段 OnCollisionEnter/Stay/Exit 函数

12,u3d中,几种施加压力的方法
rigidbody.AddForce/AddForceAtPosition.

13,unity3d提供了几种光源?
平行光Directional Ligint,点光源Point Light,区域光源Area Light,聚光灯Spot Light

14,Unity3d从唤醒到销毁有一段生命周期,列出系统自己调用的几个重要方法
Awake->OnEnable->Start->Update->FixedUpdate->LateUpdate->OnGUI->Reset->OnDisable->OnDestroy

15,物理更新一般在哪个系统函数里?

FixedUpdate,每固定帧绘制时执行一次,和update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候,FixedUpdate调用次数也会跟着下降。FixedUpdate比较适合用于物理引擎的计算,因为跟每帧渲染有关。


16,如何优化内存?

  • 释放AssetBundle占用的资源
  • 将不用的物体隐藏起来或者Destroy掉
  • 降低模型的片面数,降低模型的骨骼数量,降低贴图的大小
  • 压缩自带的类库
17,LocalPosition 和Positon的区别?
LocalPosition是自身的位置,相对于父级的变换的位置
Position在世界坐标transform的位置。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值