- 博客(9)
- 收藏
- 关注
转载 【转】深入剖析Unity协程的实现原理
用过Unity的应该都知道协程,今天就给大家来讲解下这个简洁又神奇的设计。一般的使用场景就是需要异步执行的时候,比如下载、加载、事件的延时触发等,函数的返回值是IEnumerator类型,开启一个协程只需要调用StartCoroutine即可,之后Unity会在每一次GameLoop的时候调用协程,具体的时间点可以看文档。说了这么多我们来看下官方对协程给出的定义: A coroutine is a function that is executed partially and, presuming.
2022-03-03 15:46:23
1088
转载 【转】解决场景切换进度条流畅度问题
背景通常游戏的主场景包含的资源较多,这会导致加载场景的时间较长。为了避免这个问题,可以首先加载Loading场景,然后再通过Loading场景来加载主场景。因为Loading场景包含的资源较少,所以加载速度快。在加载主场景的时候一般会在Loading界面中显示一个进度条来告知玩家当前加载的进度。在Unity中可以通过调用Application.LoadLevelAsync函数来异步加载游戏场景,通过查询AsyncOperation.progress的值来得到场景加载的进度。尝试——遇到问题第一步当加.
2022-02-23 11:26:18
1606
原创 Animator动画被打断后恢复初始状态
案例:项目中一般会用Animator加controller的方式播放UI动画,一般的做法就是默认状态为没有动画的空State(UI页面一般默认状态可能是打开界面的动画,但不排除处于UI中的节点的情况),这时候如果打断动画包括隐藏物体,隐藏Animator,再显示的时候Animator是会自动进入默认状态的,但是时机物体各个节点的信息会处于被打断时的状态。方案:在隐藏物体前(对象池,ui隐藏等)播放并且Update默认状态,代码如下(PS:一定要在Animator隐藏之前调用):public
2021-12-16 12:11:55
3288
1
原创 关于unity中的Update和FixedUpdate及各种
1.测试12.模拟循环 都知道FixedUpdate是固定更新的,但是却不是固定时间间隔更新的,从图中可以看出物理有自循环,伪代码如下(经过本人测试得出的伪代码,仅供参考):while(true){ double startTime = getCurrentTime(); durationTime=startTime-preTime preTime=startTime totalTime+=durationTime ...
2021-12-14 16:03:35
3056
原创 让unity识别.lua文件,不用修改为.lua.txt
大家都知道.lua文件是unity不支持的文件类型,那怎么在unity读取lua脚本呢,有的人采用lua加密后后缀名为.bytes来读取,有的人直接修改为.txt,偶然发现其实unity官方是有相关接口的 https://docs.unity3d.com/ScriptReference/Experimental.AssetImporters.ScriptedImporter.html using System.IO;using UnityEditor.Experimental.AssetImp...
2021-02-09 17:52:30
1329
原创 逍遥模拟器远程连接AS显示日志输出
在CMD中输入:adb connect 127.0.0.1:21503,连接成功后输入:adb logcat -v time,之后就可以在AS中看到连接的设备了,其他模拟器也是一样的方式
2021-01-15 22:32:06
372
原创 用Unity解压缩文件
最近在写热更模块,关于压缩资源使用的是.Net的System.IO.Compression自带了Gzip的压缩功能,但是在模拟器发现并不能解压成功,报monoposixhelper的错误,然后发现是在某些手机上引用不到MonoPosixHelper.dll这个文件,然后用Unity.IO.Compression代替System.IO.Compression,经测试完美解决,附上链接https://assetstore.unity.com/packages/tools/integration/gzipstr.
2021-01-15 20:32:19
898
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人