自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Unity面试(语言基础和计算机相关)

Unity面试——套娃式知识点复习Q1:结构体和类有什么区别?最大的区别结构体是值类型,而类是引用类型这就造成了如下区别:结构体是栈储存,类产生的对象由堆储存结构体相对小访问效率高,类(对象)大访问效率低结构体赋值为直接赋值,类(对象)的赋值是指针指向目标地址结构体变量使用完自动解除内存分配,对象需要GC机制来保证内存回收结构体只是一种包含了具体数据的包装,而类是反应现实的一种抽象,具有继承和多态特性结构体中的字段不可以有初始值,结构体也不可以有无参构造函数且构造函数必须赋

2021-08-30 20:45:42 613

原创 面试—— 渲染,Draw Call

什么是渲染流水线?计算机从一些列顶点数据,纹理等信息出发,把信息最终转化为图像。一般分为三个阶段:应用阶段 --> 几何阶段 --> 光栅化阶段应用阶段 CPU 负责,主要做以下事情:加载数据到显存 设置渲染状态 调用 Draw Call这里提到了一个名词 Draw Call。事实上,它是一个命令,发起方是CPU,接受方是GPU。命令仅仅指向一个需要被渲染的图元列表。GPU接受后,进入几何极端和光栅化阶段:几何:顶点着色器 --> 曲面细分着色器 -->

2021-03-11 00:35:38 303

原创 面试——委托,事件,观察者模式

本文是对此文章的简化描述,用于口头表达:http://www.tracefact.net/tech/009.html什么是委托委托是引用类型,使用delegate关键字定义,本质上是一个类。是用来将方法作为方法的参数的。委托在编译时会编译成类,作为类,我们在任何可以声明类的地方都可以声明委托。委托这种把方法作为参数动态传递的方式,规避了程序中出现大量判断语句的问题,使得程序有更好的扩展性。委托的使用步骤:定义-->赋值-->绑定额外的方法-->作为参数传递-->调

2021-03-10 22:32:58 289

原创 工作记录——不要对streamingAssets路径下的文件进行Exist判断

这个路径只能用来AssetBundle.LoadFromFile 。如果想用File类操作。 比如File.ReadAllText或者 File.ExistsDirectory.Exists 这样都是不行的。雨松MOMO 大大的文章

2020-10-30 18:23:52 936

原创 工作记录——Assertion failed on expression: ‘go.IsActive()‘

出现现象和原因这个报错一般出现在我们在 Editor 下,停止运行的时候。可能会伴有另一个错误提示你内存中有些东西没有清掉,并顺带导致你下次编辑器中运行时出现奇怪的错误。(尤其对于单例对象)这是因为代码中某个脚本销毁时(常见如 OnDisable),以某种方式调用了GameObject.Find("xxxx")。解决最简单的方式就是不要在Ondisable里做这种 GameObject.Find("xxxx") 调用。但有时候我们不得不这样做,这时我们可以利用生命周期函数中的 OnA

2020-09-07 17:53:51 1158 1

转载 工作记录——ugui 获取Text的高度,动态改变高度

项目中需要根据聊天内容的多少。显示外边框的高度。因为Text的内容是不固定的。但宽度是固定的。高度根据文字多少自增可以通过Text的属性preferredHeight 获取文本框的高度Horizontal Overflo:水平设置Wrap,自动换行。如果设置成Overflow。则宽度会根据文字多少自动拉宽。 会一行显示。不会换行Vertical Overflow:垂直设置Overflow。根据文字多少。自动拉高,如果设置成Truncate,文字超过高度会自动截断。即隐藏多余的比如我.

2020-07-07 22:31:17 774

原创 工作记录——游戏接入广告权限导致无法进入主场景

发生场景:手游,接入广告,在MainActivity中请求权限,导致游戏不能进入主场景原因:权限相关申请仅可用于 Android 版本 26+解决:使用如下代码: if (Build.VERSION.SDK_INT >= 23) { checkAndRequestPermission(); } else { ...

2019-11-28 20:01:06 183

原创 工作记录——unity使用协程 WaitForSeconds 后面代码不执行

出现场景在一处页面跳出教程提示后使用协程,1s后允许关闭,yield 后面代码不执行发生原因yield return new WaitForSeconds 的等待时间和Time.timeScale有关,Time.timeScale 值为 0 时,会导致无法等待成功解决办法在不得不暂停的情况下可以使用以下代码: IEnumerator MyCoroutine(...

2019-11-28 19:31:51 1704

原创 工作记录——unity中使用广告插件后放大比例不对

发生场景:竖屏手游,使用九游的横屏视频广告,在广告结束回到游戏时,一些 unity 中 object 放大过大。发生原因:unity 如果在node初始化时候, 设置scale,比如100倍, 会保持里面子节点的大小不变, 即0.01倍但是再次设置就没有这个特性了因为横竖屏变了, 导致再次设置了一下Scale解决:去掉了自行编写的一个 Screen 监控组件...

2019-11-18 16:08:36 152

原创 面试——unity中协程 线程

协程 线程的区别线程共享堆不共享栈,由系统调度协程共享堆不共享栈,由程序员在协程的代码里面显示调度(及程序员承担了调度风险)一个应用程序一般对应一个进程,一个进程一般有一个主线程,还有若干个辅助线程,线程之间是平行运行的,在线程里面可以开启协程,让程序在特定的时间内运行。多核多线程: 真正意义上的并行操作,同时执行多个线程单核多线程:操作系统不断切换线程调用,造成一种伪并行(在...

2019-08-29 18:48:55 737

原创 面试——AssetBundle从打包到使用

1. 标记 AssetBundle选择要打AB包的 prefab ,查看其 Inspector 视图,在下方有一个 Asset Labels 小窗口,修改里面的名字为想要打包成后的文件名,完成标记。2. Build AssetBundle写一个脚本通过菜单或运行(怎么顺手怎么写),使用编辑器打AB包。核心API:UnityEditor.BuildPipeline.BuildAss...

2019-08-15 16:40:59 1062

原创 面试——Prefab以及预制类型

Prefab作用和优点在进行一些功能开发的时候, 将一些能够复用的对象制作成 .prefab的预制体,然后将预制体存放到 Resources 目录之下, 使用时再动态加载到场景中并进行实例化。适用于需要频繁创建的物体。可以节省内存,无需重复编辑相同物体,适用于频繁使用到的游戏物体。预制类型预制类型(PrefabType)是适用于2019版本之前的概念,在2019中已经被标记为过时的...

2019-08-14 20:45:52 835

原创 面试——反射概念,实际应用(如调用某程序集中某类下的方法)

反射比较复杂,本人还在理解阶段,此文仅仅为概念解释和常用API介绍(先明白概念并可以应用),来自对菜鸟教程和以下博文学习总结:https://blog.csdn.net/pehao/article/details/73332520https://blog.csdn.net/pengdayong77/article/details/47622235概念反射指程序可以访问、检测和修改它...

2019-08-14 18:33:11 103

原创 面试——C#,什么是泛型,其装箱拆箱和传统类型有什么区别,泛型类继承怎么表示

什么是泛型:泛型允许延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。其装箱拆箱和传统类型有什么区别:装箱:值类型转引用类型。开辟一块内存空间进行存放数据。拆箱:引用类型转值类型。泛型对装箱拆箱的影响在集合的应用上有巨大的体现,诸如用 ArrayList 来储存 int 数据和用 L...

2019-08-13 20:49:45 644

原创 面试——三次握手四次挥手详解

开始前的知识TCP报文段的首部格式这里仅仅解释几个在建立连接和释放连接中使用到的序号(seq):本报文段数据第一个字节的序号 确认号(ack):期望收到对方下一个报文段的第一个数据字节序号,意味着此号之前都已收到 确认ACK:为1时才有效,建立连接后所有传送的报文段都必须置为1 同步SYN:在建立连接时用来同步序号,后面会详细描述应用场景 终止FIN:用来释放一个连接,后面会详...

2019-07-01 20:45:16 287

原创 面试——Tcp和Udp特征以及区别

从运输层说起这两个协议同属于运输层。运输层提供的是应用进程间的逻辑通信。交互地址是(软件)端口UDP(用户数据报协议)不可靠通信UDP是无连接的。减少了开销和发送时延; UDP使用尽最大努力交付,不保证可靠的交付; UDP是面向报文的。不论应用层给多长的报文,保留这些报文的边界,照样发送,一次一个; UDP没有阻塞控制; UDP支持一对一,一对多,多对一,多对多的交互通...

2019-07-01 19:34:37 316

转载 面试——简单说说C#GC机制

C#GC机制能简单聊一下垃圾收集的工作方式吗?运行.NET应用程序时,程序创建出来的对象都会被CLR跟踪,哪些对象还会被用到(存在引用关系);哪些对象不会再被用到(不存在引用关系),CLR都是有记录的。CLR会整理不会再被用到的对象,在恰当的时机,按一定的规则销毁一部分对象,释放出这些对象所占用的内存。-----------------上面这段话,牵涉到了很多技术点:(以下...

2019-06-27 21:26:51 1022

原创 DOTween Ease曲线和对应效果网址

http://robertpenner.com/easing/easing_demo.html

2019-06-26 18:16:45 935

转载 面试——谈谈对象池模式(个人总结)

本文来自对https://gpp.tkchu.me/object-pool.html学习后自己的总结概念对象池,及对象的容器,本身是一个对象,内部管理一个包含数个可复用对象的容器。可以方便的取出和回收。池在初始化时就创建整个对象集合(通常为一次连续分配)。在需要时取出,使用结束后回收,轻易地重用对象而不必每次创建销毁时消耗内存和性能。解决在Unity中,我们使用对象池主要解决两...

2019-06-18 22:45:44 828

原创 面试——Unity Animation和Animator的区别

两者都是控制动画播放的Animation控制一个动画播放的各类方法和数据(当然你可以通过修改目标动画进行动画切换)Animator则可以实现控制多个动画的播放,切换,叠加等一级对骨骼动画控制等更复杂的效果,是一个动画状态机除却必要的动画文件,还会生成一个.controller结尾的文件,也因此占内存比Animation更大...

2019-06-14 11:29:11 4793

原创 面试——Unity回调方法执行顺序

EditorReset()—— 编译环境下,当脚本添加和Reset时调用。InitializationAwake()——第一次启用时调用一次。OnEnable()——每次启用时调用,第一次启用如果 Awake() 中禁用则不会调用Start()——仅调用一次,调用结束初始化完成Physics一个特殊的部分,以一个稳定的定时器调用,可能帧率低时可能发生多次FixedU...

2019-06-13 19:01:50 856

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除