7FOREST17
05 / RESUME · 个人简历 下载 PDF 简历

UNITY DEVELOPER / INTERACTIVE EXPERIENCE

李森林

Unity Developer

专注 Unity 开发、Unity 游戏开发。这里将展示经过整理的项目案例、玩法视频、技术笔记和项目复盘。

所在地
所在城市 ·哈尔滨
邮箱
2669345299@qq.com
01

经历

上海木圣网络科技有限公司 · Unity 客户端开发实习2026.05 – 2026.08
  • 参与 Unity 3D 塔防客户端迭代,负责活动与养成类 UI 功能接入,完成七日登录、转盘抽奖及统一奖励展示,并参与商城、背包和 Battle Pass 界面联调与缺陷修复。
  • 实现七日登录领取状态与交互逻辑,区分已领取、今日可领取和次日待解锁;处理每日限领、顺序校验、本地进度保存、首日高亮、次日提示及重复领取等边界情况。
  • 按 View、Controller、Data 进行基础分层,并通过本地模拟数据联调活动流程,减少 UI 对具体数据的直接依赖。
  • 基于 UGUI、事件机制和异步资源加载同步货币、背包与活动状态;使用请求中标志防止重复操作,界面关闭时清理事件订阅和 Tween。使用 DoTween 实现转盘减速停止与奖励依次弹出、淡入,并配合策划、美术、测试完成规则确认、自测和回归验证。
黑龙江科技大学 · 软件工程(本科)2023.09 – 2027.06

主修课程:面向对象程序设计、数据结构、计算机网络、计算机组成原理、数据库原理、软件工程、软件体系结构、操作系统等。英语:CET-4。

02

个人能力

01C# / Lua / xLua熟悉 C# / Lua 及 xLua 框架,掌握 LuaEnv 生命周期管理、C# 与 Lua 互调、LuaCallCSharp、CSharpCallLua 及 Lua 脚本热更新流程,能够处理脚本加载、异常调试和资源释放问题。
02Unity 客户端开发熟悉 Unity 客户端开发,掌握 UGUI、Animator、NavMeshAgent、Physics、Raycast、Collider、Scene 管理及 AssetBundle 等常用模块。
03设计模式与系统组织熟悉有限状态机、单例、对象池、观察者、管理器等设计模式,能够应用于角色状态、敌人 AI、UI 管理、关卡流程和资源管理。
04Protobuf 与消息协议熟悉 Protobuf 序列化及其在 Unity 网络通信中的应用,能够根据 .proto 文件生成 C# 消息类,完成消息序列化、反序列化、协议分发及客户端状态同步;了解协议字段兼容、消息版本管理等基础问题。
05数据配置与本地存档熟悉 JSON、XML、二进制文件、StreamingAssets、PlayerPrefs、persistentDataPath 等数据存储方式,具备配置表读取、本地存档和运行时数据持久化开发经验。
06AssetBundle 资源管理熟悉 AssetBundle 自动化打包、依赖分析、Manifest 生成、资源缓存、运行时加载、引用计数卸载及基础热更新流程,能够处理资源重复加载和场景切换后的资源释放问题。
07性能分析与优化了解 Unity 性能优化方法,包括 GC 分配分析、对象池、物理检测优化、资源加载与卸载、Draw Call、批处理、Profiler 和 Memory Profiler 的基本使用。
08计算机网络与通信了解计算机网络基础,理解 TCP、UDP、HTTP、WebSocket 的基本通信流程,能够使用 UnityWebRequest 完成 HTTP 请求;了解 Socket 通信、心跳、粘包拆包、消息顺序和断线重连等概念。
09版本管理与 AI 辅助开发熟悉 Git、SVN、GitHub 等版本管理工具,了解分支协作、代码合并和版本回退流程;能够使用 Codex、Claude Code、DeepSeek Harness 等 AI 工具辅助代码分析、问题定位和重构优化。
03

精选项目

3D 生存射击游戏2025.01 – 2025.03

基于 Unity 开发的一款 3D 生存射击与塔防结合游戏,玩家可以选择不同英雄和关卡,通过角色攻击、防御塔建造升级抵御多波丧尸进攻,保护主塔并完成关卡结算。

  • 战斗系统:实现玩家射击攻击以及防御塔单体、群体攻击逻辑,通过碰撞检测和射线检测判断攻击目标,并结合攻击间隔、伤害、命中反馈和音效完成战斗闭环。
  • 管理器架构:采用单例模式封装 GameDataMgr、UIManager 和 GameLevelMgr,统一管理全局数据、UI 面板、关卡初始化、怪物波次、防御塔建造和胜负结算流程,减少跨模块之间的耦合。
  • 怪物 AI:基于 NavMeshAgent + Animator 实现怪物移动、寻路、攻击、受伤和死亡状态,通过刷怪点和怪物列表管理多波丧尸生成,并根据刷怪状态和场上怪物数量判断关卡胜负。
  • 塔防系统:实现防御塔建造、升级和资源消耗逻辑,根据炮塔类型支持单体攻击和范围攻击,并通过目标检测、攻击范围和攻击间隔控制炮塔行为。
  • 动画控制:使用 Animator 状态机管理玩家和怪物的待机、移动、攻击、受伤、死亡等动画状态,通过 Bool 和 Trigger 参数实现角色状态切换,并利用动画事件触发实际攻击逻辑。
  • 对象池:封装对象池系统,对怪物、攻击特效、命中特效和音效对象进行统一创建、复用和回收,减少频繁 Instantiate/Destroy 造成的 GC 和运行时开销。
  • 数据配置:使用 StreamingAssets + JSON + Excel 维护角色、怪物、关卡和防御塔数据,运行时通过 JSON 读取配置,实现数据与代码分离。
  • 本地存档:使用 Application.persistentDataPath 保存金币、已解锁英雄、背包道具和音量配置,实现本地数据持久化。
  • UI 系统:基于 UGUI 封装通用面板管理系统,通过 Resources 动态加载界面,使用 CanvasGroup 实现面板淡入淡出效果,完成角色选择、关卡选择、建塔面板、背包界面和结算界面。
  • 背包系统:扩展背包数据和道具使用逻辑,支持关卡奖励入库、道具数量显示和快捷键使用,实现急救包、手雷和金币箱等消耗品功能。
  • 性能分析:使用 Unity Profiler 分析怪物刷波、特效播放、对象创建、UI 刷新过程中的 CPU、内存和 GC 开销,并结合对象池降低运行时频繁分配造成的性能波动。
AssetBundle 自动打包加载卸载工具2025.03 – 2025.06

Unity AssetBundle 资源管理框架,覆盖游戏资源从编辑器打包到运行时加载、卸载的一整套流程。

  • 基于 XML 设计资源打包规则,在 Unity Editor 中提供一键构建流程,自动完成资源收集、依赖分析、Bundle 构建及描述文件生成。
  • 生成 Resource/Bundle/Dependency 二进制索引,运行时建立资源、Bundle 与依赖关系映射,支持依赖递归加载和缓存复用。
  • 封装同步 / 异步资源加载接口,支持回调、协程和 await 等使用方式,统一处理加载状态及重复请求。
  • 基于资源与 Bundle 双层引用计数实现延迟卸载、依赖级联释放,并提供实例销毁时的自动释放机制。