ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Unity 题型】脚本开发

2021-06-20 18:00:01  阅读:272  来源: 互联网

标签:脚本 题型 GameObject 物体 Transform Unity GetComponent Find


知识涉及: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<T>
B. AddComponentMenu
C. RequireComponent<T>
D. Component.GetComponent<T>

答案解析:

  • AddComponentMenu:通过Unity菜单栏下 Component -> Scripts 中添加脚本
  • RequireComponent:需求指定脚本,若当前对象上不存在该脚本,控制台会报错提示该对象缺少该脚本或组件。
  • D项不存在

Unity的C#脚本中下列哪个方法能够获取一个物体所有的子物体元素集合?

A. GetComponentInChildren<T>()
B. GetComponentsInChildren<T>()
C. GetComponent<T>()
D. GetComponents<T>()

答案解析:

  • GetComponentInChildren:返回查到的子对象群中第一个组件或脚本
  • GetComponentsInChildren:返回查到子对象群中所有的关于这个脚本或组件(数组)
  • GetComponent/GetComponents同上,不过仅从该脚本所挂载物体上查找。

某 GameObject 有一名为 MyScript 脚本,该脚本内有一名为 DoSomething()函数,则如何在该 GameObject 的另一个脚本中调用该函数?

A. GetComponent<MyScripts>().DoSomething()
B. GetComponent<Script>().DoSomething()
C. GetComponent<MyScript>.Call("DoSomething")
D. GetComponent<Script>.Call("DoSomething")

答案解析

  • 在同一物体上获取脚本:GetComponent<T>()
  • 在不同物体上获取脚本:XXX.GetComponent<T>()

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));

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组件

标签:脚本,题型,GameObject,物体,Transform,Unity,GetComponent,Find
来源: https://blog.csdn.net/qq_51026638/article/details/118071397

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有