Tap4Fun一面

1.实习的主要负责的模块是什么

我主要负责的是:

  • 卡牌逻辑相关模块(洗牌、发牌规则校验)
  • UI 交互逻辑优化
  • 性能优化(对象池、GC优化、资源加载)

整体偏功能开发 + 优化。

2.客户端的人员分配

客户端 3 人:

  • 主程:架构 + 核心系统
  • 一名开发:主要功能模块
  • 我:版本迭代 + UI + 优化

3.实习主要负责UI逻辑吗

不是只做 UI,我的工作是以客户端逻辑为主,其中一部分是 UI 交互逻辑,同时也参与了功能开发和性能优化。

4.用的什么UI框架

主要使用 Unity 自带的 UGUI,同时项目中有简单的 UI 管理框架,用于统一管理界面生命周期。

5.在Unity进行点击的时候如何响应到C#逻辑层的

通过 Button 组件的 onClick 事件绑定 C# 方法来实现。

底层是 Unity 的事件系统(EventSystem)处理输入,再分发到 UI 组件。

6.如何进行UI响应的是,通过挂载还是代码的绑定

Inspector 拖拽绑定

代码 AddListener

7.两者的优缺点

拖拽方式:

✔ 简单直观
❌ 不利于维护,容易丢引用

代码绑定:

✔ 可控性强,方便维护
✔ 更适合复杂项目
❌ 写法稍复杂

一般项目会以代码绑定为主

8.如何保证这个UI在别人修改后依旧是正确的

统一 UI 管理框架

使用脚本绑定而不是拖拽

命名规范(避免找错节点)

封装 UI 逻辑,不直接操作节点

核心 UI 会做功能拆分,避免耦合。

9.UI框架大概是怎么实现的呢,比如最简单的UI管理,创建和销毁相关内容是什么样的?

一个基础 UI 管理框架一般包括:

  1. UIManager(单例)
  2. 管理 UI 打开/关闭
  3. 使用字典缓存 UI
  4. 控制层级(Canvas)

流程:

  • 打开 UI → 加载 Prefab → 实例化 → 加入缓存
  • 关闭 UI → 隐藏 or 销毁

10.如何实现单例模式复用

通过泛型单例基类实现,例如:

  • static instance
  • 全局访问

11.如何保证各个单例模式不会相互混淆

每个单例职责单一

命名规范

不要滥用单例

12.关于在项目中的对象池问题的实现

对象池通过缓存对象,避免频繁创建和销毁:

  • 使用队列/栈存储对象
  • Get:取对象
  • Release:回收对象

13.对象池缓存的预制体还是对象

缓存的是实例对象(GameObject),预制体只是模板。

14.如何保证对象池的物品取出状态是干净的呢?

取出对象时会进行状态重置:

  • 位置
  • 状态变量
  • UI状态

15.重置逻辑是怎么写的。

16.什么时候能进行真正的回收

当对象不再使用时:

  • 不销毁
  • 放回对象池

17.回收的策略是什么样的?

超过上限 → 销毁

长时间未使用 → 清理

18.对于有个来回创建销毁的对象,是如何进行处理的

使用对象池,比如:

  • 子弹
  • 卡牌
  • 特效

避免频繁 Instantiate/Destroy。

19.C#的拆箱和装箱

装箱:值类型 → 引用类型
拆箱:引用类型 → 值类型

会产生性能开销和 GC

20.协程和线程

协程:

  • 运行在主线程
  • 轻量级
  • 适合逻辑控制

线程:

  • 多线程并发
  • 复杂
  • 需要同步机制

21.假如在协程和线程分别写了有个死循环,各个表现是什么

协程死循环:

会卡死主线程(游戏卡住)

线程死循环:

只占用该线程,不影响主线程(但CPU占用高)

22.怎么判断有个数是不是回文数

转字符串反转对比
或数学反转数字

23.快速排序是稳定排序吗

不稳定排序

24.什么是稳定排序,什么是不稳定排序

稳定排序:相同元素顺序不变
不稳定:可能改变顺序

25.AB资源加载连接

AssetBundle 是 Unity 的资源打包方式。

加载流程:

  1. 加载 AB 包
  2. LoadAsset 获取资源
  3. 实例化使用

优点:

  • 减小包体
  • 支持热更新

Tap4funhr面

1.自我介绍

2.你是哪里人?

3.除了学习之外,有没有什么爱好?

4.你的爱好给你带来了什么?

5.你喜欢玩游戏吗?

6.你最近玩的游戏是什么呢?

7.你想在成都发展吗?

8.为什么会选择做这个项目呢?(类银河恶魔城)

9.从什么时候决定开始走游戏开发这个路线的?

10.为什么当时决定走游戏开发,有什么契机吗?

11.你身边有没有同学跟你一样的走游戏开发的?

12.你做这个项目除了学的更全面的技术知识以外,还有什么其他收获呢?

13.实习是你自己找的吗?

14.实习经历,团队配置?

15.有没有遇到让你印象特别深刻的事情?

16.那你觉得在实习期间最大的收获是什么?

17.如果出现需求不了解的情况,如何找策划沟通

18.如果策划反复修改需求,你要怎么跟他沟通

19.如果策划以玩家体验更好,数据更好看为由反复修改需求,如何说服他不这么做

20.详细说明学Unity开发路线

21.如果当前项目工期紧张,没时间重构的情况下,如何处理屎山代码

22.如何看待每天晚上加班到10点,连续加班一个月这种高强度工作节奏

23.你当时在实习的时候遇到过这种加班的情况吗

24.有没有了解过一些游戏的论坛或者社区

25.在你完成的项目中,有没有那个功能让你觉得实现的不够理想的地方

26.你在这个公司实习的时候有没有想过留在这个公司呢?

27.未来一年你对自己的规划能大致讲一下吗?

28.目前你手上有offer吗

29.你投递的公司都是游戏公司吗?投递过哪些城市

30.你对地域有没有优先级的划分?

31.你的期望薪资是多少?

反问: