知识涉及: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));

答案解析:

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

【Unity 题型】脚本开发相关推荐

  1. 聊聊在博客园写博客的这两年《Unity 3D脚本编程:使用C#语言开发跨平台游戏》正式出版...

    版本状态: 2016.9 第一次印刷 (2016.11 输出到台湾) 2017.1 第二次印刷 2017.5 第三次印刷 2017.5 电子书上线:Unity 3D脚本编程--使用C#语言开发跨平台游 ...

  2. Unity 2D游戏开发教程之使用脚本实现游戏逻辑

    Unity 2D游戏开发教程之使用脚本实现游戏逻辑 使用脚本实现游戏逻辑 通过上一节的操作,我们不仅创建了精灵的动画,还设置了动画的过渡条件,最终使得精灵得以按照我们的意愿,进入我们所指定的动画状态. ...

  3. 《Unity 3D脚本编程:使用C#语言开发跨平台游戏》序言

    本文是7月受陈嘉栋的委托为他的新书<Unity 3D脚本编程:使用C#语言开发跨平台游戏>所写的序言,借助序言告诉大家.NET平台有着一个广阔的使用场景. 序言 Unity3D 是由两个具 ...

  4. 【错误记录】Visual Studio 2019 中运行 Unity C# 脚本时报错 ( 根据解决方案, 可能需要安装额外的组件才能获得 | .NET 桌面开发 | 使用 Unity 的游戏开发 )

    文章目录 一.报错信息 二.解决方案 三.Visual Studio 2019 中运行 Unity C# 脚本需要的组件 1..NET 桌面开发 2.使用 Unity 的游戏开发 一.报错信息 Vis ...

  5. 《Unity 游戏案例开发大全》一6.5 游戏主场景

    本节书摘来异步社区<Unity 游戏案例开发大全>一书中的第6章,第6.1节,作者: 吴亚峰 , 杜化美 , 于复兴 责编: 张涛,更多章节内容可以访问云栖社区"异步社区&quo ...

  6. 《Unity 4 3D开发实战详解》一6.7 物理引擎综合案例

    本节书摘来异步社区<Unity 4 3D开发实战详解>一书中的第6章,第6.7节,作者: 吴亚峰 , 杜化美 , 张月霞 , 索依娜 责编: 张涛,更多章节内容可以访问云栖社区" ...

  7. Unity 2D游戏开发教程之摄像头追踪功能

    Unity 2D游戏开发教程之摄像头追踪功能 上一章,我们创建了一个简单的2D游戏.此游戏中的精灵有3个状态:idle.left和right.这看起来确实很酷!但是仅有的3个状态却限制了精灵的能力,以 ...

  8. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  9. Unity 2D游戏开发教程之精灵的死亡和重生

    Unity 2D游戏开发教程之精灵的死亡和重生 精灵的死亡和重生 目前为止,游戏项目里的精灵只有Idle和Walking这两种状态.也就是说,无论精灵在游戏里做什么,它都不会进入其它的状态,如死亡.于 ...

  10. ​Unity 2D游戏开发教程之2D游戏的运行效果

    ​Unity 2D游戏开发教程之2D游戏的运行效果 2D游戏的运行效果 本章前前后后使用了很多节的篇幅,到底实现了怎样的一个游戏运行效果呢?或者说,游戏中的精灵会不会如我们所想的那样运行呢?关于这些疑 ...

最新文章

  1. 实例工厂配置bean
  2. The Distinguish of the share or static lib in MFC
  3. linux tcp ip c,Linux下TCP/IP编程--TCP实战(select)
  4. ulua 动态反射在IOS上的问题
  5. Spring-ConfigurationClass类
  6. Android架构初探
  7. JS版日期格式化和解析工具类
  8. 梦断代码读后感——终结
  9. ITIL4知识系列之事件管理 (Incident Management)
  10. FeHelper工具(Web前端助手)
  11. 集美大学校园网绑定/认证报错异常及解决方案
  12. wamp mysql 用户名_wamp的mysql设置用户名和密码
  13. 启动jar 日志输出
  14. YYH的积木(NOIP模拟赛Round 6)
  15. [总结]mac pro 提示“USB设备已停用”导致外接显示器黑屏
  16. 网络编程之:IP的ULONG方式字符串方式的相互转化
  17. Ubuntu20.04版本系统时间如何设置成北京时区,我来教你【亲测有效】
  18. Hbuild X 下载以及插件安装
  19. P2P-资金存管系统充值业务流程
  20. 华为的价值主张带给施工企业数字化转型的价值思考

热门文章

  1. 计算机教室报损登记簿,学校实验教学工作总结
  2. R语言 quantmod 如何下载汇率
  3. flowable报错FlowableTaskAlreadyClaimedException问题
  4. AXI4协议与AXI3协议区别
  5. 镜像电流源特点_镜像电流源电路.ppt
  6. svga插件_如何压缩SVGA格式的礼物特效文件
  7. ffmpeg delogo滤镜去除图片水印
  8. 芯片的IR drop是什么
  9. 【ESP 保姆级教程 预告】疯狂Node.js服务器篇 ——案例:ESP8266 + DS18B20温度传感器 +NodeJs本地服务+ MySQL数据库
  10. 重走来时路,这一次我会披荆斩棘