本篇核心知识点实时系统时间文本、协程打字机效果、技能 CD 遮罩倒计时、登录校验 模拟加载进度条、动态滚动列表、见缝插针项目功能拆解、开发规范禁止过度依赖 AI一、功能实时系统时间文本显示1 概念调用 Unity 系统时间 API实时刷新 Text 文本实现时钟滚动显示效果每一帧更新时分秒数值。2 特性 / 规则需要引入System命名空间获取系统时间类Update 内逐帧刷新文本保证时间实时同步时分秒统一格式化不足十位自动补 0。3 语法 代码片段using UnityEngine.UI; using System; private Text timeTxt; void Update(){ DateTime now DateTime.Now; // string timeStr ${now.Hour:D2}:{now.Minute:D2}:{now.Second:D2}; // timeTxt.text timeStr; timeStr.text Time: DateTime.Now.ToString(yyyy-MM-dd HH:mm:ss); }4 相关知识点对比系统 DateTime 获取 VS 游戏 Time.timeDateTime获取电脑本地真实时间适合时钟、登录时间戳Time.time游戏运行时长不受系统本地时间修改影响仅做游戏计时。Time.timescare 0 游戏暂停 1 游戏运行5 模块拓展拓展日期显示、星期展示制作游戏大厅右上角时钟 UI。二、功能协程打字机逐字输出1 概念通过字符串 Substring 截取前 N 个字符配合协程延时逐帧更新文本模拟打字逐个弹出视觉效果。2 特性 / 规则核心逻辑使用索引记录当前打印长度每次截取 0 到索引区间文字协程循环索引自增延时控制打字速度后置自增运算符会先取值再计算容易出现少一字 Bug。3 语法 代码片段using UnityEngine.UI; private Text wordTxt; string targetStr Hello World 测试打字效果; IEnumerator TypeWrite(){ int index 0; while(index targetStr.Length){ wordTxt.text targetStr.Substring(0, index); index; yield return new WaitForSeconds(0.1f); } } void Start(){ StartCoroutine(TypeWrite()); }4 相关知识点对比逐字符拼接 VS Substring 截取拼接每次在原有文字末尾追加数据量大会产生字符串 GCSubstring直接截取完整前缀性能更稳定项目标准写法。5 模块拓展聊天框输入发送、剧情弹窗逐字剧情文本。三、功能技能冷却 CD 遮罩效果1 概念使用 Image 组件 Filled 填充遮罩 倒计时文本点击按钮后进入冷却遮罩从满到透明逐步消退倒计时同步显示剩余秒数冷却中禁止重复触发。2 特性 / 规则遮罩图片默认隐藏CD 开启显示布尔标记isCd判断是否处于冷却冷却中点击无效fillAmount 当前剩余时间 / 总 CD 时间实现遮罩渐变消退文本格式化保留 1 位小数视觉更美观。3 语法 代码片段using UnityEngine.UI; public Button skillBtn; public Image cdMask; public Text cdText; public float totalCd 5f; private float cdTimer; private bool isCd false; void Start(){ skillBtn.onClick.Add(StartSkillCd); } void StartSkillCd(){ if(isCd) return; isCd true; cdTimer totalCd; cdMask.gameObject.SetActive(true); } void Update(){ if(!isCd) return; cdTimer - Time.deltaTime; cdMask.fillAmount cdTimer / totalCd; cdText.text cdTimer.ToString(F1); if(cdTimer 0){ isCd false; cdMask.gameObject.SetActive(false); } }4 相关知识点对比遮罩 Fill 填充计时器 VS 纯文本倒计时Fill 遮罩可视化冷却进度游戏技能通用交互纯文本仅数字提示无视觉遮罩体验较差。5 模块拓展多技能独立 CD 管理、大招长冷却动画提示。四、功能账号登录 模拟加载进度条跳转场景1 概念InputField 输入账号密码点击按钮校验校验成功后开启模拟加载 Slider 进度条进度满自动切换目标场景。2 特性 / 规则进度条为假模拟真实项目需使用异步加载 AsyncOperation进度条运行时关闭交互禁止玩家手动拖动修改数值场景需要在 Build Settings 添加索引通过索引跳转。3 语法 代码片段using UnityEngine.UI; using UnityEngine.SceneManagement; public InputField accInput; public InputField pwdInput; public Slider loadSlider; public Button loginBtn; void Start(){ loginBtn.onClick.AddListener(CheckLogin); } void CheckLogin(){ if(accInput.text 123 pwdInput.text 456){ StartCoroutine(LoadSceneCor()); } } IEnumerator LoadSceneCor(){ loadSlider.interactable false; float val 0; while(val 100) { val Time.deltaTime * 10; loadSlider.value val; yield return null; } SceneManager.LoadScene(1); }4 相关知识点对比模拟假进度条 VS 真实异步加载模拟进度简单演示无资源加载逻辑仅展示动画异步加载真实后台加载资源可获取真实加载进度商用项目标准。5 模块拓展登录加密、加载界面背景动画、加载资源提示文字。五、功能动态生成滚动列表1 概念运行时代码批量实例 Item 预制体放入 ScrollRect 的 Content 容器搭配 GridLayout 自动排版用于背包、商店、道具列表。2 特性 / 规则Content 挂载 GridLayoutGroup 控制行列、间距预制体提前制作 Item 单元包含图标、名称文本大量 Item 使用对象池优化避免频繁实例销毁 GC 卡顿。3 语法 代码片段using UnityEngine.UI; public Transform content; public GameObject itemPrefab; // 批量生成道具列表 void CreateItemList(){ for(int i 0; i 10; i){ GameObject item Instantiate(itemPrefab, content); item.GetComponentInChildrenText().text $道具{i1}; } } void Start(){ CreateItemList(); }4 相关知识点对比编辑器预设 Item VS 代码动态生成编辑器预设数量固定适配静态展示动态生成道具数量随数据变化背包 / 商城必备。5 模块拓展道具点击选中、分页切换、道具数量增减逻辑。六、开发规范拓展AI 使用注意事项1 概念现阶段学习禁止依赖 AI 生成完整代码优先手写巩固底层逻辑企业工作后可合理使用 AI 辅助开发。2 特性 / 规则过度依赖 AI 会丧失代码逻辑分析、排错能力企业岗位对基础手写能力要求严格面试手写代码为必考项后期项目阶段会教学 AI 对接游戏程序、流式输出等实用技巧。3 相关知识点对比手写古法编程 VS AI 一键生成手写吃透底层 API、逻辑流程排错、面试无压力AI 生成快速出成品但底层原理模糊遇到报错无法自主修复。4 模块拓展简历项目优化将五大 UI 作业整合为完整登录背包系统丰富求职项目经验。七、入门实战项目见缝插针1 概念整合全部前期 Unity 基础知识点的综合小游戏涵盖坐标旋转、子弹实例化、碰撞检测、UI 计分、游戏结束判定、相机视野缩放。2 特性 / 规则核心功能拆解1UI 分数文本实时更新2中心圆盘持续自转Transform.Rotate3鼠标点击发射子弹对象池复用子弹4子弹碰撞针头触发游戏结束5游戏结束后重置分数、重置场景6相机随进度缩放视野。素材仅两张图片自行搭建场景与组件。3 核心代码片段子弹发射 碰撞public Transform firePos; public GameObject bulletPrefab; void Update(){ if(Input.GetMouseButtonDown(0)){ GameObject bullet Instantiate(bullet, firePos.position, firePos.rotation); } } private void OnTriggerEnter(Collider other){ // 子弹碰撞针头游戏结束逻辑 }4 相关知识点对比本项目用到的全部前置知识点汇总变换旋转圆盘自转协程发射延迟、游戏结束倒计时对象池子弹复用碰撞触发器碰撞判定游戏结束UGUI分数文本、结束弹窗相机控制视野缩放场景加载游戏重置。5 模块拓展拓展功能子弹数量限制、难度递增、音效、通关关卡系统。综合拓展UI 项目落地规范所有交互逻辑统一代码动态绑定禁止编辑器拖拽赋值CD、打字、加载动画全部使用协程实现避免逐帧计时器冗余。高频 Bug 排查汇总打字机文字缺失检查 Substring 截取索引循环边界CD 遮罩不消退确认 isCd 布尔标记、fillAmount 除法计算逻辑动态列表 Item 重叠核对 GridLayout 单元格尺寸与间距登录无法跳转确认场景添加至 Build Settings 索引列表。面试高频考点汇总协程 yield 等待区别、Image 填充模式用途、动态列表实现思路、场景加载两种方案、触发器碰撞判定条件。进阶学习路线1优化方向对象池完整封装、异步场景加载、图集打包2功能拓展TMP 高性能文本、UI 动画、游戏音效管理3项目进阶见缝插针完善存档、关卡、难度系统。