个人求职简历了解

1、使用JSON存储玩家的基本数据信息,比如昵称、属性等
问什么是JSON
答:JSON是轻量级的文本数据交换格式
是存储和交换文本信息的语法。

问为什么使用JSON
答:对应AJAX应用程序,更快更易使用
读取和处理JSON字符串

问JSON的转换
答:把JSON字符串转换为JSON对象
把对象转换为字符串。

问怎么实现JSON存储
在Unity中使用JOSNUtility类实现JSON的存储和加载
通过将对象转换为JSON字符串并保存到指定的文件路径中

2、使用NavMeshAgent实现玩家自动寻路功能

问什么是NavMeshAgent
答:自动寻路组件。

3、使用Fungus插件完成NPC对话、对玩家发布任务
Fungus是一款免费的交互式的对话系统。

问怎么使用Fungus插件创建一个完整的对话
答:

4、使用ScriptableObject完成技能背包
问什么是ScriptableObject
答:ScriptableObject是Unity提供的一个数据配置存储基类,是一个用来保存大量数据的数据容器,可以保存为自定义的数据资源文件。

问ScriptableObject的主要作用
答:编辑模式下的数据持久化、配置文件、数据复用(多个对象共用一套数据)

问怎么创建ScriptableObject
答:写个脚本,继承ScriptableObject类
声明需要的数据变量
添加特性来创建资源文件。专门记录数据的资源,继承自ScriptableObject类生成的。

问怎么实现游戏打包后的数据持久化
答:利用JSON结合ScriptableObject存储数据、读取数据。

1、熟练掌握C#语言、熟练使用Unity引擎开发
问什么是C#
答:C#是一种面向对象的编程语言。

问什么是Unity3D
答:Unity是一款流行的跨平台游戏引擎。

熟练掌握单例模式、观察者模式
问什么是单例模式
答:在一个CLR(公共语言运行时)中,该对象只有一个实例存在。
问什么是观察者模式
答:一对多的关系,当被观察者发生改变时会通知观察者,让双方都依赖于抽象,使得各自变化不会影响另一方
问什么是CLR
答:在Unity中,CLR是用于执行和管理托管代码的运行时环境。它负责处理内存管理、垃圾回收、线程管理、安全性等任务,以确保托管代码的正确执行。CLR还提供了许多高级功能,如异常处理、反射。

5、掌握Lua加AB包的热更新操作
下载和管理AB包:首先,您需要在服务器上准备好AB包,并且在客户端下载和管理这些AB包。可以使用Unity的AssetBundle类来进行下载和管理。
更新AB包:当有新的AB包可用时,您可以通过网络下载新的AB包文件,并使用AssetBundle类加载并替换旧的AB包。
更新Lua脚本:在更新了AB包之后,您还需要更新Lua脚本以使用新的资源。可以通过重新加载Lua脚本文件或者使用热更新工具(如tolua或XLua)来实现。
使用更新后的资源:在Lua脚本中,您可以使用Unity提供的API来加载和使用更新后的资源。例如,可以使用AssetBundle.LoadAsset方法加载更新后的预制体、纹理等资源。

6、了解NGUI,能够使用NGUI制作UI界面
问NGUI和UGUI的区别
答:NGUI保留了图集,UGUI没有图集的概念
UGUI有屏幕坐标和世界坐标,NGUI有2D和3D的区别
UGUI的image可以使用材质
NGUI的渲染前后顺序是通过widget的Depth,UGUI渲染顺序根据层级的顺序,越下面渲染在顶层
UGUI出现了锚点的概念,NGUI支持图文混排

7、了解MySQL,能够对数据库里的数据进行增删查改
问数据库的增删查改
答:Insert(增)、Delete(删)、Update(改)、Select(查)
语法:
Insert into表名(字段名,…,字段名) value/values (值,…,值)
select from (表名)
update (表名) set 字段名 =值
Delete From (表名)

9、什么是MVC框架
问什么是MVC模式
答:是一种将业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
问MVC框架的详细了解
答:
M层:适合做一些业务逻辑处理,比如数据库存取操作,网络操作,复杂的算法,耗时的任务等都在model层处理。
V层:应用层中处理数据显示的部分,XML布局可以视为V层,显示Model层的数据结果。
C层:在Android中,Activity处理用户交互问题,因此可以认为Activity是控制器,Activity读取V视图层的数据。
当一个小的项目无需频繁修改需求就不用MVC框架来设计了,那样反而觉得代码臃肿。一般在大的项目中,且业务逻辑处理复杂,页面显示比较多,需要模块化设计的项目使用MVC就有足够的优势了

10、同步和异步
问什么是同步加载
答:就是场景切换是直接加载下一个场景。
问什么是异步加载
答:场景切换时,不会直接加载场景,而是通过进度条的方式,当进度条走完也就是下一个场景资源全部加载完成才会切换到下一个场景。
问同步异步的区别
答:在场景切换时,Unity会删除当前场景上的所有对象,并且去加载下一个场景的资源,如果当前场景对象过多或者下一个场景对象过多,这个过程会非常的耗时,会让玩家感受到卡顿。
问什么是MASK
答:遮罩效果
问什么是depth、Clear Flag、Culling Mask
答:都是Camera属性,深度(相机在渲染顺序上的深度)、清除标志、按层(即GameObject.layer)选择性的渲染部分场景。
问序列化有几种
答:JSON序列化(序列化:将对象转化为字符串,反序列化:字符串转化为对象
二进制序列化、XML序列化
问多线程和协程的区别
答:多线程是抢占式的(由操作系统分配执行权),协程是非抢占式的(由程序分配执行权)、
在协程之间的切换不需要涉及任何系统调用或任何阻塞调用
协程的开销远远小于多线程的开销
问什么是网络通信
答:计算机之间通过网络来传输数据,称之为网络通信,为了实现两台计算机的通信,必须用一个网络线路连接两台计算机

问Unity有几种联网方式
答:我知道的有两种:使用PUN2插件搭建服务器,
使用SocKet的TCP/udp
Socket就是一套实现双向通信的API,使用过C#的TCP(面向连接、可靠)和UDP连接(面向非连接、不可靠)
Socket(套接字)是一个抽象层,应用程序可以通过它发送或接受数据,可以对其像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP地址和端口的组合。

问TCP和UDP是怎么使用的
答:TCP和UDP都是传输层,与互联网层也就是网络层都属于操作系统。
TCP:传输控制协议是一种面对连接的、可靠的、基于字节流的传输层通信协议。
TCP三个核心功能就是建立连接、发送数据以及接收数据。
UDP(User Datagram Protocol):用户数据报协议,UDP只在IP的数据报服务上增加了很少一点的功能,就是复用和分用的功能以及差错检测的功能。

问TCP和UDP的区别
答:TCP和UDP都属于TCP/IP协议族
TCP是面向连接的,UDP是面向无连接的
TCP是可靠的,UDP是不可靠的
TCP是面向字节流的,UDP是面向报文的
TCP只有一对一的传输方式,而UDP不仅可以一对一,还可以一对多,多对多
TCP的头部开销大,UDP的头部开销小
TCP会产生毡包问题,UDP会产生丢包问题
TCP传输速度慢,UDP传输速度快

问Wheel Collider怎么使用的
答:Wheel Collider是Unity引擎的一个组件,用于模拟车辆的轮胎行为和碰撞,
问Wheel Collider有那些方法
答:通过MotorTorQue(控制车轮的转动,前进或后退)控制车辆扭矩
通过steerAngle控制车辆转向
通过breakTorque(必须为正数,用于刹车)控制车辆制动
wheel.rpm(车轮转速)

问项目结束时做过哪些优化
答:释放AssetBundle占用的资源
使用光照贴图,使用预设
热更新,压缩自带类库

问是怎么打包的
答:点击File ,build settings可以对当前项目打包,可以选择打包成PC、IOS和安卓。

什么是协同程序
答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个线程。可以用来控制运动、序列以及对象的行为。

什么是光照贴图
答:unity中的光照贴图其实就是把场景中的静态物体做间接光的计算,并把计算结果存储到图片上,这些图片会附在相应的物体上,光照贴图会跟随相应的物体

谈谈你对A*算法的了解
公式:F=G(起点沿已生成的路径到一个给定方格的移动开销)+H(从给定方格到目的方格的估计移动开销)
答:把起点放入开放列表,然后重复以下过程:遍历开放列表,查找F值最小的节点,把它作为当前要处理的节点,移到封闭列表,对当前方格相邻的每一个方格判断,如果它是不可达到的或者它在封闭列表中,忽略它,否则,如果它不在开放列表中,把它加入开放列表,并把当前方格设置为它的父节点,记录该方格的F,G和H值。如果它已经在开发列表中,检查这条路径是否更好,用G值作为参考,G值越小,距离越近,然后把它的父节点设置为当前方格,并重新计算它的G和F值,当终点加入开放列表中,表示路径已找到,此时终止循环,或者开放列表为空,表明已无可以添加的新节点,而封闭列表中没有终点,则意味路径无法被找到,此时也结束循环。从终点开始沿父节点遍历,并保存整个遍历到的节点坐标,遍历所得的节点就是最后得到的路径

面向对象和面向过程的区别
答:面向对象就是把事物抽象成对象的概念,先抽象出对象,然后给对象赋一些属性和方法,然后让每个对象去执行自己的方法
面向过程就是把事情拆分成几个步骤(相当于拆分成一个个方法和数据),然后按照一定的顺序执行
你觉得Unity和Cocos的区别
答:Cocos是开源的、免费,Unity是部分开源的、收费
Cocos没有3D方面的积累,虽然支持3D的东西,但只是简单的支持加载,显示,没有好的编辑器,适合开发手机端游戏,开发小型游戏,
Unity注册3D和2D,适合开发PC端游戏,开发大型游戏
怎么解析JSON文件
答:使用Unity自带的JSON解析库:JsonUtility类,使用josnUtility.FromJSON方法将JSON字符串解析为自定义的数据类型,使用.ToJson方法将对象序列化为JSON字符串。
使用LtyJSON插件解析JOSN文件

问五大常用核心类有哪些
答:Transform、Verctor3、GameObject、Time、Input
问Awake和Start的区别
答:Awake函数在游戏对象被实例化后立即调用,用于初始化对象的状态和属性;而Start函数在Awake函数执行完毕后调用,用于进行一些初始化操作。它们的主要区别在于调用时机和执行顺序。
问如果射线穿透怎么解决
答:使用EvenetSysteam
问对象池的使用
答:写一个接口,抽象类继承接口,里面的方法也要进行抽象,其他类调用时重写
问重写
答:方法不变,核心重写
问重载
答:方法名相同,参数不同

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值