知识涉及:Unity
脚本生命周期 要点
以下关于密封类的说法,正确的是
A. 密封类可以用做基类 B. 密封类可以使抽象类 C. 密封类永远不会有任何派生类 D. 密封类或密封方法可以重写或继承
答案解析:
sealed关键字密封该类,不可派生或继承该类。
关于MonoBehavior.LateUpdate函数描述错误的是
A. 当 MonoBehaviour类 被启用后,每帧调用一次 B. 常被用于处理 Rigidbody 的更新 C. 在所有 Update函数执行后才能被调用 D. 常被用于实现跟随相机效果,且目标物体的位置已经在Update函数中被更新
答案解析:
LateUpdate常用于处理摄像机的跟随FixedUpdate常用于处理物理更新
若要使一个物体在被销毁时触发一个动作,可以放在____系统方法中?
A. OnDestroy B. OnDisable C. OnApplicationQuit D. OnTriggerExit
答案解析:
OnDestroy:脚本被销毁时调用OnDisable:组件被禁用时调用OnApplicationQuit:在进行退出操作时调用,如退出游戏OnTriggerExit:在触发结束时调用
物体与脚本对象在启用状态下,OnEnable,Awake,Start执行顺序是
A. Awake -> OnEnable -> Start B. OnEnable -> Awake -> Start C. Awake -> Start -> OnEnable D. Start -> Awake -> OnEnable
答案解析:
- Unity生命周期:
Awake->OnEnable->Start->FixedUpdate->Update->LateUpdate->OnGUI->OnDisable->OnDestroy->OnApplicationQuit
移动相机动作在___函数里 A. Awake B. LateUpdate C. Update D. OnMouseButton
答案解析:
LateUpdate中执行,在Update之后执行,防止出现一帧未显示物体对象的情况。
Component 要点
如何为新创建的物体添加一个脚本?
A. gameObject.AddComponent B. AddComponentMenu C. RequireComponent D. Component.GetComponent
答案解析:
AddComponentMenu:通过Unity菜单栏下 Component -> Scripts 中添加脚本RequireComponent:需求指定脚本,若当前对象上不存在该脚本,控制台会报错提示该对象缺少该脚本或组件。- D项不存在
Unity的C#脚本中下列哪个方法能够获取一个物体所有的子物体元素集合?
A. GetComponentInChildren() B. GetComponentsInChildren() C. GetComponent() D. GetComponents()
答案解析:
GetComponentInChildren:返回查到的子对象群中第一个组件或脚本GetComponentsInChildren:返回查到子对象群中所有的关于这个脚本或组件(数组)GetComponent/GetComponents同上,不过仅从该脚本所挂载物体上查找。
某 GameObject 有一名为 MyScript 脚本,该脚本内有一名为 DoSomething()函数,则如何在该 GameObject 的另一个脚本中调用该函数?
A. GetComponent().DoSomething() B. GetComponent().DoSomething() C. GetComponent.Call("DoSomething") D. GetComponent.Call("DoSomething")
答案解析
- 在同一物体上获取脚本:
GetComponent() - 在不同物体上获取脚本:
XXX.GetComponent()
Transform 要点
以下选项中,哪个可以将游戏对象绕z轴逆时针旋转90度?
A. transform.rotation = Quaternion.Euler(0, 0, 90); B. transform.rotation = Quaternion.Angle(0, 0, 90); C. transform.Rotate(new Vector3(0, 0, 90)); D. transform.Rotate(new Vector3(90, 0, 0));
答案解析:
- A项,无论如何旋转,都从世界坐标零点沿Z轴旋转。
- B项,
Quaternion.Angle()计算两四元数夹角 - D项,绕X轴旋转90°
GameObject 要点
如何通过脚本来删除其自身对应的 GameObject?
A. Destory(gameObejct); B. this.Destroy(); C. Destroy(this); D. 上述三项均可以
答案解析:
Destroy(gameObject)效果=this.Destroy(gameObject),可省略this- B项缺少指明销毁对象
Destroy(this):指销毁该脚本
如何销毁一个UnityEngine.Object及其子类?
A. 使用Destroy()方法 B. 使用Delete()方法 C. 使用Destruction()方法 D. 使用Dispose()方法
答案解析:
- 暂无
(多选题)下列对Transform.Find()和GameObject.Find() 方法描述正确的是
A. Transform.Find()和GameObject.Find()都不能找到未被启用的物体 B. Transform.Find()和GameObject.Find()找到的都是物体的 Transform组件 C. Transform.Find()和GameObject.Find()都是用物体名称来查找 D. Transform.Find()和GameObject.Find()都支持路径查找
答案解析:
Transform.Find():可找到未被启用物体的 Transform组件
