目录
一、Unity 编辑器版本选择1. 为什么面试会问 Unity 使用哪个版本?2. Unity 版本类型二、Unity 项目模板区别1. 核心模板(Core Template)2. 示例模板(Sample Template)3. 学习模板(Learning Template)三、Unity 渲染管线1. 什么是渲染管线?2. Built-in Render Pipeline、URP、HDRP区别三种管线总结四、游戏循环、帧率与 Unity Update1. 游戏循环(Game Loop)2. 什么是帧率(FPS)?3. 什么是帧时间(Frame Time)?4. 30 FPS、60 FPS、120 FPS区别5. Unity Update 与帧率的关系6. Time.deltaTime和 speed 的关系7. Time.deltaTime 的影响因素8. 1 / Time.deltaTime 的含义五、Unity Legacy Input System(旧输入系统)1. Input.GetKey:检测具体按键2. Input.GetButton:输入功能映射3. Input.GetAxis:获取连续输入4. Joystick Button 是什么?5. GetAxis 和 GetAxisRaw 区别三个 API 总结六、Unity 角色移动、速度与 Rigidbody2D 物理运动1. 从输入到角色移动的完整流程2. 推荐的基础写法:Update 采样,FixedUpdate 应用物理3. moveSpeed 到底表示什么4. Rigidbody2D.velocity 与 Vector2:为什么要保留另一个分量5. 速度还会受到哪些物理因素影响6. 角色移动的四种常见方式7. 本节常见错误清单七、C# 字段声明与访问权限1. 什么是字段(Field)2. 字段、局部变量与属性的区别3. public、private、protected4. 为什么字段通常优先 private5. 实例字段与 static 字段6. 字段声明的常见错误八、Unity 字段序列化与 Inspector 特性1. 什么是 Unity 序列化2. [SerializeField] 的原理与作用3. 为什么项目里常用 [SerializeField] private4. 常用 Inspector 特性5. Inspector 值、代码默认值与常见问题九、Unity 常用组件1. Transform:每个 GameObject 都有的基础组件2. Rigidbody 与 Rigidbody2D:让对象参与物理3. Collider 与 Collider2D:定义碰撞范围4. SpriteRenderer、MeshRenderer 与 SkinnedMeshRenderer:把对象显示出来5. Animator:管理动画状态与过渡6. AudioSource:播放音效与音乐7. Camera:决定最终看到什么8. 其他高频组件十、Unity 组件获取方式1. Inspector 拖拽引用:显式配置外部依赖2. GetComponent<T>():获取当前 GameObject 上的组件3. TryGetComponent<T>():获取可选组件并立即判断4. GetComponentInChildren<T>():查当前对象和子层级5. GetComponentInParent<T>():查当前对象和父层级6. 为什么通常要在 Awake 缓存组件7. 组件获取方式怎么选