Assignment Help logo
在线聊天

Loading...

Score %0 (0 correct0 incorrect57 unanswered)

Q1. 在编辑器中,你可以用什么来在播放模式和设计模式之间进行视觉区分?

  • 对象检视器
  • 操作柄
  • 图标
  • 播放模式色调

Q2. 开发者执行了下面的 C# 代码,在开始事件中查找任何标记为“enemy”的游戏对象。但是开发者注意到,当执行时,FindGameObjectsWithTag 返回 NULL,即使场景中包含标记为“Enemy”的对象。可能的原因是什么?

GameObject[] MyEnemies = GameObject.FindGameObjectsWithTag("Enemy");

  • 对象正在播放动画
  • 对象在 UI 层上
  • 对象未命名为“Enemy”
  • 对象已停用

Q3. 这段代码样本实现了什么? Float Answer = Random.value * 10f;

  • 它选择一个小于 10 的随机数
  • 它选择一个大于 10 的随机数
  • 它选择一个在 0 和 10 之间的随机数
  • 它选择一个 10 的倍数的随机数

Q4. Unity 场景可以完全保存在 YAML 格式中。你可能为什么要这样做?

  • 减少场景文件大小
  • 外部解析场景及其对象
  • 优化场景加载和卸载
  • 提高平台兼容性

此外,文本数据可以由工具生成和解析,从而可以自动创建和分析场景。 参考链接

Q5. 正交相机会移除哪些视觉效果?

  • Gamma 色彩空间
  • 景深
  • 透视变形
  • 泛光

Gamma 色彩空间和泛光与图形相关。景深与对象在相机距离一定距离时模糊相关。

  1. 参考链接
  2. 参考链接

Q6. Cinemachine 虚拟相机用于什么?

  • 用于用电影效果覆盖标准场景相机
  • 用于确定特定位置到达时摄像机会看到什么
  • 用于创建预定义的相机预设以应用于标准相机
  • 用于伪装网格,让其认为它们被看到了

使用 Aim、Body 和 Noise 属性来指定虚拟相机如何动画位置、旋转和其他属性。当 Cinemachine Brain 或时间轴将 Unity 相机的控制转移到虚拟相机时,虚拟相机将应用这些设置到 Unity 相机上。 参考链接

Q7. Microphone 类将捕获的音频数据保存为什么格式?

  • 音频剪辑资产
  • MP3 文件
  • WAV 文件
  • OGG 文件

Microphone 类将捕获的音频保存为音频剪辑资产,之后可以将其存储为 OGG 文件。 参考链接

Q8. Cinemachine 提供了用于构建游戏行为的工具。哪个组件可以制作基于样条的路径来移动对象?

  • Cinemachine 目标组
  • Cinemachine 平滑路径
  • Cinemachine 自由视角
  • Cinemachine 大脑

Q9. 在构建像为 Unity 制作的网格之类的资产时,哪种测量单位最适合使用?

  • 以肘为单位
  • 英尺
  • 英寸

参考链接Unity 的默认单位是米(虚幻引擎也是如此)。如果你记住这一点,并使用以米为单位的单位建模,灯光系统将以最小的伪影工作。

Q10. Unity 团队的 Collaborate 功能赋予了谁什么样的权限?

  • 开发者可以为 Unity 源代码做出贡献
  • 公司可以通过众筹为项目筹集资金
  • 团队成员可以保存、共享和同步 Unity 项目
  • 开发者可以将版本控制系统(如 git)集成到项目中

Q11. 相机组件的 Clear Flags 属性会影响哪种行为?

  • 相机如何在场景上方渲染 UI 对象
  • 相机如何默认渲染透明对象
  • 相机如何在每一帧上渲染其背景
  • 相机如何遮挡背景对象

Q12. MonoBehaviour 对象上的 OnAnimatorMove 事件通常用于什么?

  • 检测对象移动时
  • 根据关键帧数据更新导航代理
  • 当动画完成时重播动画
  • 修改动画对象的根运动

Q13.

哪个 MonoBehaviour 方法在编辑器模式下默认运行?

  • OnBecameInvisible
  • OnAnimatorMove
  • Reset
  • OnTriggerEnter
  • 说明- Reset 方法是一个 MonoBehaviour 方法,在编辑器模式下默认运行。当脚本附加到 GameObject 或在检视器中重置时调用此方法。它允许你初始化或重置脚本中的变量值,以确保在 Unity 编辑器中工作时具有一致的初始状态。

Q14. 为了使 OnTriggerEnter 函数在两个对象之间的碰撞中成功调用,至少一个对象必须具有哪两个组件?

  • 一个 Collider 和一个 MeshRenderer
  • 一个 Collider 和一个 MeshFilter
  • 一个 Rigidbody 和一个 Collider
  • 一个 MeshRenderer 和一个 MeshFilter

Q15. UI 元素,例如图像和按钮,可以固定在特定的屏幕位置以构建响应式界面。哪些 Unity 功能有助于实现此目标?

  • 事件和光线投射
  • 四元数和欧拉角
  • 不透明度和透明度
  • 锚点和枢轴

Q16. 材质的遮挡图通常是一个灰度图像,像素的值在黑色和白色之间变化。这个图对物体材质有什么贡献?

  • 白色像素显示详细图像,黑色像素不显示
  • 白色像素允许发射,黑色像素不允许
  • 白色像素接收阴影,黑色像素不接收
  • 白色像素接收完整的间接照明,黑色像素不接收

Q17. 你可以用什么来在 Hierarchy 面板内将不同的游戏对象组织成组?

  • 画布对象
  • 事件系统
  • 空对象
  • 网格渲染器

Q18. 项目窗口的搜索框可以使用文本命令过滤显示资产。哪个命令只显示纹理资产?

  • T:mesh
  • T:texture
  • T:mesh
  • 显示纹理

Q19. 从武器发射一个子弹游戏对象,并使用 Rigidbody 组件快速穿过场景。尽管场景中的对象具有碰撞体,但有时它们还是会穿过实体。纠正这种情况的一个合理策略是什么?

  • 扩大所有场景对象和子弹的碰撞体大小,以更好地检测碰撞
  • 从项目设置对话框中增加固定时间步长值,以改变 FixedUpdate 事件的频率
  • 将 Rigidbody 的碰撞检测属性更改为 Continuous Dynamic 或 Continuous Speculative
  • 启用 Rigidbody 的 IsKinematic 属性

Q20. 某些材质类型可能包含法线贴图纹理。法线贴图实现了什么?

  • 它以编程方式减少网格的多边形数。
  • 它使用挤出和倒角位移网格几何,生成更高多边形版本。
  • 它在网格上创建表面细节的外观,如凹凸、凹痕和划痕
  • 它是一个逐渐减少网格多边形的细节层次系统,随着场景摄像机距离它越来越远而逐渐减少

Q21. 将 SkinnedMeshRenderer 组件自动附加到一些网格对象上时,Unity 是自动执行的。哪个原因最好地解释了这一点?

  • 网格文件包含骨骼和绑定数据
  • 游戏对象还具有动画师组件
  • 游戏对象是玩家控制的角色
  • 网格文件包含一个人型角色

Q22. 哪个 C# 属性可以在对象检视器中显示一个私有变量?

  • Range
  • HideInInspector
  • Serializable
  • SerializedField

参考链接

Q23. 优化 Unity UI 元素的技巧是什么?

  • 将静态 UI 元素分组到一个画布上,将动态元素分组到另一个画布上
  • 将所有画布对象定位到世界原点
  • 尽可能将尽可能多的 UI 元素分组到一个画布上
  • 将屏幕划分为多个画布对象,每个对象的大小为屏幕大小的四分之一

参考链接 每当画布上的元素被更新时,整个画布都会重新绘制。如果元素从不被更新,则将它们保留在一个画布上是理想的。

Q24. 下面使用的 C# Space 属性达到了什么效果?

[Space(20)]
Public string PlayerName;
  • 它将 20 个空格字符作为字符串变量的默认值插入到下面的变量中
  • 它在对象检视器中在变量周围的所有边缘插入 20 像素的边距
  • 它在对象检视器中在变量上方插入

20 像素的空白

  • 它在对象检视器中在变量下方插入 20 像素的空白

参考链接 这是一种在不编写新的检视器脚本的情况下自定义检视器的好方法。

Q25. 每当你从项目窗口双击一个 C# 脚本文件时,Unity 就会打印下面的消息(或者类似的消息)到控制台中。在解决这个问题时,一个合理的步骤是什么?Cannot start the process because a file name has not been provided

  • 在项目窗口中搜索所有脚本文件,然后将它们全部重命名
  • 通过偏好设置菜单的外部工具选项卡,将 Visual Studio 设置为默认的代码编辑器
  • 确保你已经从偏好设置菜单的颜色选项卡中指定了播放模式色调颜色
  • 选择脚本文件,然后从应用程序菜单中选择“Assets > 在场景中查找引用”

Q26. 控制台窗口有什么用?

  • 查看和编辑文本文件
  • 下载数据包和资产包
  • 通过 shell 接口键入和执行命令行指令
  • 发现脚本文件和项目中的错误

Q27. Sprite 图集资产,包含许多小精灵的大型纹理,可以通过批处理哪些内容进行优化?

  • 不带动画的精灵
  • 游戏中一起出现的精灵
  • 使用相同颜色调色板的精灵
  • 相同尺寸的精灵

Q28. 您正在制作一个需要根据受捆绑角色的关键动画事件来执行自己的函数的游戏。具体来说,有两个事件您必须处理:当动画状态进入时和当它在 Animator 图中退出时。哪个类可用于在这两个事件发生时调用您的代码?

  • AnimatorClipInfo
  • StateMachineBehaviour
  • AnimationInfo
  • AnimatorUtility

参考 OnStateMachineEnter()OnStateMachineExit() 是 StateMachineBehavior 类的方法,用于处理这个问题。AnimatorClipInfo 显示有关当前播放的剪辑的信息,AnimatiorUtility 处理变换层次结构,而 AnimationInfo 在 5.0 版本中被移除。

Q29. 如何更改移动构建的唯一捆绑标识符?

  • 选择 Assets > Import Package,然后导入 Cross-Platform Input Asset Package
  • 选择 Windows > Asset Management > Version Control,然后在 Source 字段中输入标识符
  • 选择 File > Build Settings。然后,从 Build 对话框中,选择 Android 或 iOS,并从 Compression Method 下拉菜单中选择 Bundle Identifier。
  • 选择 Edit > Project Settings > Player 菜单,然后展开 Other Settings 选项卡

Q30. Rigidbody 组件可以添加到具有碰撞器的对象中,以使它们受到物理力的影响。IsKinematic 属性实现了什么效果?

  • 它从对象中删除重力,但保留所有其他力
  • 它从对象中删除所有物理力,除了重力
  • 它将对象转换为影响其他对象的物理力
  • 它暂停对象上的物理力,允许手动变换

Q31. 场景中的主定向光默认连接到一个程序化场景 Skybox。这个光的旋转控制什么?

  • Skybox 的方向
  • Skybox 的夜晚和白天状态
  • 所有音频源的声学特性
  • Skybox 的分辨率

Q32. 您可以通过哪种算术操作将四元数组合在一起?

  • 乘法
  • 除法
  • 加法
  • 减法

Q33. 哪个功能生成二叉树数据以优化场景中的摄像机渲染?

  • 渲染纹理
  • 导航网格
  • 分析器
  • 遮挡剔除

Q34. Range C# 属性如何控制对象检视器中数字变量的交互行为?

  • 它使用滑块小部件限制变量值
  • 它通过文本框小部件验证变量值
  • 它使用颜色选择器小部件限制变量值
  • 它在下拉列表中呈现有效选项

Q35. 当附加到受控制角色时,此代码片段会做什么?

    public Animator avatar;
    public Transform lookAtObj;
    void OnAnimatorIK(int layerIndex)
    {
        avatar.SetLookAtPosition(lookAtObj).position;
        avatar.SetLookAtWeight(If);
    }
  • 它将角色的头动画与第二个预定义动画混合
  • 它使角色的头朝向指定的目标
  • 它将角色的头部返回到中立位置
  • 它使一个游戏对象面向角色的头部

Q36. 变量 Transform.forward 是以什么测量的 Vector3?

  • 局部空间
  • 内部空间
  • 标准空间
  • 世界空间

Q37. De-lighting 与哪项技术相关?

  • 虚拟现实
  • 增强现实
  • 运动捕捉
  • 摄影测量学

当您使用摄影测量学从现实世界中扫描模型并将这些模型带入 Unity(或任何渲染器)时,您会注意到光照信息已嵌入到纹理中。您可以使用各种在线工具删除嵌入式的光照信息,但甚至 Unity themeless 也为此编写了一个自定义工具;请查看!

  1. 参考
  2. 参考

Q38. 人型角色资产,如 NPC 和玩家角色,具有 Avatar 对象上的哪个目的?

  • Avatar 为面部肌肉混合形状定义参数集
  • Avatar 促进不同人型角色之间的动

画重新定位

  • Avatar 为动画角色定义 IK 数据
  • Avatar 描述了动画期间纹理如何映射到变形对象

Q39. 您可以通过哪种方式最好地访问顶点对齐工具,以便将两个网格对象的顶点完全对齐?

Vertex

  • 选择一个网格对象,然后在目标顶点上按下 W 键
  • 在按住 C 键的同时,从源网格到目标网格点击并拖动
  • 从菜单中选择 Edit > Enable Vertex Snap,然后选择您的对象
  • 在按住 V 键的同时,从一个角落顶点拖动您的对象到其目标位置

参考

Q40. 哪个语句最好地描述了函数 Quaternion.Euler 的功能?

  • 它将 Quaternion 打印为一个字符串,显示其 X、Y 和 Z 旋转角度(以度为单位)
  • 它将 3D 方向从弧度转换为 Quaternion
  • 它将以度为单位测量的 3D 方向转换为 Quaternion
  • 它将 Quaternion 转换为 Vector3,其中 X、Y 和 Z 以度为单位测量

简化数学:Unity 内部使用四元数来避免吉姆巴锁。当两个轴对齐时,欧拉角 XYZ(俯仰、偏航和滚动)轴可能会锁定。Quaternion.Euler 将提供的欧拉数转换为内部使用的 Quarternion,以防止此问题。

参考

Q41. Destroy 函数做什么?

  • 它立即停用指定的游戏对象
  • 它在当前更新循环结束后删除指定的游戏对象
  • 它在应用程序终止时删除指定的游戏对象
  • 它立即删除指定的游戏对象

参考对象 obj 在当前 Update 循环之后立即销毁,或者在指定的 t 秒之后销毁。

Q42. 您可以使用哪个音频 Mixer 资产的哪个特性,从 C# 脚本中对音频效果(如 Pitch 和 Reverb)进行编程控制?

  • 音频衰减
  • 公开参数
  • ParamEQ
  • 音频 Mixer 组

官方 Unity 教程:音频衰减是关于能量损失的技术,通常称为 "增益"。ParamEQ 允许您改变音频的频率 - "音调",但不支持 C#。音频 Mixer 组允许您控制音频效果,但不通过 C#。

Q43. 多个动画可以在一个角色上混合在一起,分别在不同的肢体上选择。哪个 Mecanim 功能支持这一点?

  • Mip Maps
  • avatar masks
  • StateMachineBehaviour scripts
  • animation events

参考Mip Maps 是一种技术,通过在同一文件中包含图像的较小副本,提高图像质量并降低渲染速度,以牺牲存储空间。动画事件允许您在时间线上的特定点调用函数。

Q44. PlayableDirector 组件允许您做什么?

  • 在不同的游戏对象上并行运行多个函数
  • 根据需要在不同场景摄像机之间切换
  • 控制场景中时间线实例的播放
  • 将游戏过程记录到视频文件中

参考PlayableDirector 组件存储时间线实例与时间线资源之间的链接。

Q45. Grid 组件是做什么的?

  • 在世界原点生成网格精灵
  • 帮助您将对象移动到固定网格增量
  • 渲染并在游戏过程中显示等距网格
  • 在世界原点生成网格网格

Q46. 时间轴序列可以使用哪个功能在动画期间启动代码?

  • EventSystem
  • markers
  • signals
  • packets

EventSystem 不是时间轴功能,包也不是。时间轴信号是标记的一个子功能,标记可以直接启动代码,而信号只能将信号发送到接收器。

  1. 参考
  2. 参考

Q47. 哪个代码片段使用 C# 属性来创建健康功能?

  • A
public class Health : MonoBehavior
{
    private float HealthPoints = 100f;

    public float GetHealth()
    {
        return HealthPoints;
    }

    public void SetHealth(float Change)
    {
        HealthPoints += Change;

        if (HealthPoints <= 0)
            Destroy(gameObject);
     }
}
  • B
public class Health : MonoBehavior
{
    public UnityEvent OnHealthChanged;

    private float HealthPoints = 100f;

    public void SetHealth(float Change)
    {
        HealthPoints += Change;
       

 OnHealthChanged.Invoke();
    }

    public void Die()
    {
        Destroy(gameObject);
    }
}
  • C
public class Health : MonoBehavior
{
    public float HealthPoints
    {
        get { return _healthpoints; }
        set
        {
            _healthpoints = value;

            if(_healthpoints <= 0 )
            {
                Destroy(gameObjects);
            }
        }
    }

    private float _healthpoints = 100f;
}
  • D
public class Health : MonoBehaviour
{
    public float HealthPoints = 100f;

    private void Update()
    {
        if (HealthPoints <- 0)
            Destroy(gameObject);
    }
}

getset 是使用 C# 属性的明确指示。参考

Q48. 哪个陈述不正确?

  • A 协程将在停用的对象上继续运行
  • B 所有组件脚本都继承自 MonoBehaviour
  • C 只有人形角色具有骨骼
  • D 在对象停用时不会自动调用 Update 函数

参考

Q49. MonoBehaviourReset 方法何时会自动调用?

  • A 当游戏对象从一个场景移动到另一个场景时
  • B 当向对象添加组件或在编辑模式下重置其值时
  • C 当场景开始或重新启动时
  • D 当场景开始或重新启动时,对于已停用的游戏对象

参考Reset 在用户在检视器上下文菜单中点击重置按钮或者第一次添加组件时调用。此函数只在编辑器模式下调用。

Q50. 哪个 C# 属性允许类及其方法在编辑器中的编辑模式下运行?

  • A [Range(0,10)]
  • B [Live]
  • C [RunInEditor]
  • D [ExecuteAlways]

ExecuteAlways 使脚本的实例始终执行,无论是作为播放模式的一部分还是在编辑模式下。默认情况下,MonoBehaviour 仅在播放模式下执行,仅当它们位于包含用户场景的主要舞台上的 GameObject 上时才执行。通过添加此属性,任何 MonoBehaviour 的实例都将在所有时间执行其回调函数。

  1. 参考 不要上 [RunInEditor]!它看起来类似于 MonoBehaviour.runInEditMode[ExecuteInEditMode],虽然它们是合法的但没有被提及为可能的答案。
  2. 参考

Q51. EventSystem 类的 IsPointerOverGameObject 静态函数有助于创建哪种行为?

  • A 将 UI 元素与鼠标指针同步移动,当指针在屏幕上拖动时
  • B 当鼠标移动到按钮上时更改按钮的高亮显示
  • C 防止鼠标点击 UI 画布后面的游戏对象
  • D 识别鼠标悬停在哪个 3D 对象上

Q52. 哪个 C# 代码片段持续更新对象的偏航(Y 旋转)?

  • c# transform.localRotation *= Quaternion.Euler(0f, RotSpeed * Time.deltaTime, 0f);
  • c# transform.Rotate(Vector3.right, RotSpeed * Time.deltaTime);
  • c# transform.RotateAround(Vector3.up, RotSpeed * Time.deltaTime);
  • c# transform.SetParent(null);

Q53. 您可以做什么来提高项目资产的搜索性?

  • 标签
  • 标记
  • 实例 ID

Q54. Y 键盘快捷键激活哪个编辑器工具?

  • 隐藏
  • 缩放
  • 变换
  • 旋转

Q55. Input.touchCount 变量代表什么?

  • 键盘输入的数量
  • 鼠标点击的数量
  • 屏幕上当前存在的触摸数量
  • 帧更新的数量

参考

Q56. 在游戏过程中,您需要将所有敌人的选择变量(数据)序列化以通过网络发送,并进行解析以生成关于当前游戏会话的统计信息。哪个 Unity 类帮助将对象数据转换为 JSON 文本格式?

  • XMLSerializer
  • BinaryFormatter
  • JsonSerializer
  • JsonUtility

参考

Q57. Unity 中通常避免使用哪种纹理格式?

  • PNG
  • 未压缩
  • JPEG
  • GIF

参考

这样就完成了!有任何其他问题吗?