[Unity ] Ep.04 使用UI Toolkit轻松实现画面淡出淡入效果 | 回合制RPG制作系列教程 | Let's Make A JRPG

作者: 阿严Dev分类: 野生技能协会 发布时间: 2023-02-11 20:00:00 浏览:7879 次

[Unity ] Ep.04 使用UI Toolkit轻松实现画面淡出淡入效果 | 回合制RPG制作系列教程 | Let's Make A JRPG

samlee2024:
跟着做的,咋不会过渡,完全没反应。。。

Cwcbbb:
老哥您好,我的项目里向您学习了异步加载的功能,我的项目里有一个初始化的场景,就是在这个场景中加载一些在游戏中跨场景不销毁的对象,我希望当我完全加载完毕初始化场景后立马跳转到游戏场景中,请问如何知道何时SceneLoader已经完全将场景加载完毕并且允许使用它开始下一个场景的加载呢

大自然卫士:
老师 我来交作业了, 同时做了一个存盘的脚本 解决 ScriptableObject存档的问题。请给个评分。 https://www.bilibili.com/video/BV1Lc411v7k2/?vd_source=88d739578ff92f9983159ed14ff8ee4c

【回复】回复 @大自然卫士 :感谢推荐,这视频我以前在油管看过。Async Task不是Unity引擎的,而是C#原生功能。相比之下个人还是觉得协程更适合Unity(不用担心多线程安全的问题)。当然你觉得没问题的话用Async Await也挺好
【回复】回复 @阿严Gaming :UP 我在视频中注意到UP对协程用字符串表示不顺手,而且法线UP对代码效率有追求。 所以 我在研究unity并行的时候 发现了 Unity async task异步操作。大大提升效率和简化代码。请看一下这个视频。我正在学,觉得非常牛逼,完全可以替代协程。(只要不涉及time scale)。 https://www.bilibili.com/video/BV1sT4y1o7Dz/?spm_id_from=333.337.search-card.all.click&vd_source=88d739578ff92f9983159ed14ff8ee4c
大自然卫士:
UP 我有个技术问题探讨一下。 上次我研究淡入淡出效果是另一种实现。 也就是: 主面板上加上样式,并设置线性过度,延迟设置个0.5秒。 然后新建样式的 :focus条件。 在focus样式上改变透明度。 === 原理就是,当主面板被显示在屏幕上,鼠标肯定是focus这个主面版的。于是主面板的focus条件激活,触发自带的过度动画。 这样做的好处是不用添加代码了。 请UP研究一下是不是靠谱。 我自己做过初步的实验,是可以用的。

【回复】仔细测试了一下,我这个方法其实不咋地。
是个珂学家太好了:
写完之后,一直无法加载场景,处于 isLoading,是因为什么原因呢

【回复】我也是这个问题,请问你解决了吗
【回复】回复 @丨Ashi丨 : 没找到问题,我从头抄了一遍就好了,第一次加了点自己的东西
taidilixiang:
请教up一个问题,我知道打包后的游戏,退出游戏时,ScriptableObject对象中的数据会被还原。 在没退出游戏的情况下,在不使用DontDestroyOnLoad的情况下,ScriptableObject可以跨场景传数据吗?比如第一个场景给这个ScriptableObject对象里的变量a赋值为2,卸载第一个场景加载第二个场景后,在第二个场景能读到这个ScriptableObject对象里的a值是2吗? 也就是问卸载场景时ScriptableObject对象里的值是否会被还原? 我是新手,请up指教,谢谢

【回复】可以,我就是这么干的, 用ScriptableObject当全局变量和跨场景交互用
【回复】这个问题我在学UP视频的时候专门翻墙用谷歌和YouTube研究过,scriptableobject打包后是不能作为存档用的,内容都不会保存。唯一的办法就是写入磁盘,比如用JSON写入。scriptableobject是支持JSON写入和读取的。
【回复】回复 @taidilixiang :个人建议类似这种问题你应该自己动手实验一下,你会获得更深刻的经验
x1nbly_s2:
老师,这是为什么啊[大哭]是我少了什么插件吗,期待您的解答感谢!

天命挂:
从头跟着看完学到了不少UI Tool Kit的知识,三连支持下[脱单doge]

【回复】回复 @天命挂 :感谢支持~
第11个游戏:
[保卫萝卜_笔芯][保卫萝卜_笔芯][保卫萝卜_笔芯][热词系列_三连]

【回复】回复 @TuFuri :b( ̄▽ ̄)d 感谢支持~ ♥
peterxee:
三连支持,额外请问UP您用的什么VS的主题啊,颜色很不错

【回复】感谢投喂~ 我用的是Rider,默认的主题
【回复】他用的是rider哦,不是vs
詹姆士x:
这里需要携程吗?可以直接同步阻塞等待吧,反正你全黑啥也干不了

【回复】你可以自己测试一下,把异步加载状态卡在未完成(模拟加载过程太长,画面淡出完全变黑之后异步加载还未完成),这时候你调用ActivateLoadedScene()方法会发生什么。你可以不认可我的方法,按你自己的想法去做就行了。很遗憾的告诉你,我也不认可你 [滑稽]
【回复】回复 @阿严_独立游戏开发 :可寻址资源的异步加载返回给你的类型AsyncOperationHandle<SceneInstance>, 这个类型有一个WaitForCompletion()方法。会同步等待直到异步完成。 我的重新开始游戏是简单的加载主菜单场景,然后发现已经在主菜单的时候会说资源还没卸载。然后我就加了一个卸载资源,但是因为没有加载完所以卸载无效。 为了保证一定在加载完后才卸载,我发现了这个方法。
【回复】回复 @詹姆士x : 你说的我不是不知道,我早就想过了怎么处理是最好的。照你说的,然后你还要在TransitionScreen脚本里获取这个AsyncOperationHandle<SceneInstance>,再去订阅它的Completed方法是吧?好好想想,用我曝露出来的SceneLoader里的静态boolean属性去处理,还是通过这个AsyncOperationHandle来处理(如果你要用这个方法,记住你还要在TransitionScreen脚本里引用Addressables的一堆命名空间),哪个更方便?等你自己验证了,你觉得你的方法更方便再来提出异议。否则,我上面说的“很遗憾我不认可你”,依然没说错。我以前就和你说过,程序设计要注意功能的模块化和专一性。你就是学了个Addressables的皮毛就想把它用到任何地方了 = = 思维混乱!再好好思考下吧

游戏制作 游戏开发 独立游戏 游戏设计 Unity 玩一种很新的东西 回合制RPG JRPG Unity教程 Unity游戏开发

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读