这是动漫博客吗?
我认为,每个观看过至少一个动漫系列的人都注意到中间的一小部分,通常可以在场景和广告单元之间切换-保险杠。标题中的图片显示了“ New Game!”中的过渡。标题。由于这是有关Unity的博客,因此我们将考虑其场景之间过渡的设计。^_^
Unity中的场景是将游戏分为几部分的基本单元,它们之间的过渡本身并不复杂。过渡是通过SceneManager类使用LoadScene()或LoadSceneAsync()方法实现的。 但是,如果没有其他修饰,这些过渡将看起来很奇怪。让我们尝试平滑此过渡,为项目增加一点视觉吸引力。
该方案非常简单:在卸载前一个场景并加载下一个场景时,在其间进行过渡的两个场景在视觉上应相同。通常,这种过渡是通过某些场景元素的动画来组织的。例如,在这篇文章中,我们使用黑屏(导致这种效果的组件将是黑色图片)。前一个场景应逐渐变黑,而下一个场景将从中顺利出现。
动画一词暗示着Unity中称为“ Mecanim”的机制的使用。如果您不太熟悉它,则可以阅读(甚至更好地用作练习)以前的文章“ State”,出于培训目的,该机制用于创建没有动画的状态机。
通过黑屏在三个场景之间切换。第一个场景立即出现,然后在2秒钟后进入第二个场景。第二和第三之间的过渡是循环的,并且通过单击可以平稳地执行。
Build Settings
SceneTransition
的Canvas
。设置Render Mode - Screen Space - Camera
并添加Main Camera
。将Order in Layer
设置为999
,使其始终位于其他元素之上SceneTransition
添加新的Image
,并将其命名为Fade
。完全黑色,覆盖整个屏幕区域。您可以将其关闭,以免阻塞屏幕Animations
Animation
选项卡。选择Fade
后,单击Create
按钮并创建FadeIn
动画,还创建FadeOut
动画。FadeIn
动画。选择FadeIn
资产。删除Loop Time
检查。选择一个Fade
对象。在Animation
选项卡上,按Enable/Disable keyframe recrding mode
按钮并启用动作记录。启用Image
组件。将Animation
标签上的时间标记移至1秒。在颜色选择器中,设置alpha = 0
。禁用Image
组件。在Animation
标签上,禁用动作录制。从调暗中检查UI平滑外观的动画。FadeOut
动画,但顺序相反:启用Image
,即Alpha通道从0到100
。自己练习此步骤Animator
标签上,添加FadeOut
触发器。在FadeIn和FadeOut
之间添加过渡。在新的过渡上,禁用Has Exit Time
,并将Transition duration
设置为0。在Conditions
中,添加创建的触发器FadeOut
。TransitionHandler
,该脚本将在FadeOut
动画的末尾使用
|
|
TransitionHandler
脚本添加到Fade
对象。在FadeOut
动画的末尾,添加Event
。从TransitionHandler
脚本中选择FadeOutFinished()
函数Animation
选项卡上的事件对象看起来像这样SceneTransition
对象创建一个Prefab
BootScene
创建脚本,这将在2秒后开始过渡到FirstScene
|
|
BootScene
。添加SceneTransition
预制。将Main Camera
设置为canvas组件。写下下一个场景名称,"FirstScene"
。禁用淡入动画BootHandler
。之后,从步骤1添加脚本。设置动画师
BootScene
必须在过渡之前具有淡入淡出的动画ClickHandler
脚本,这些脚本可通过鼠标单击来处理过渡
|
|
"FirstScene"
。添加SceneTransition
预制。设置Main camera
。设置下一个场景名称-SecondScene
ClickHandler
。之后,从步骤5添加脚本。设置动画师
SecondScene
。 执行FirstScene
设置中的所有步骤,排除下一个场景名称;它必须是-"FirstScene"
经过所有操作,我们获得了一个用于场景之间过渡配置的预制件。您不太可能将其用于生产,因为使用的同步场景加载不是一个很好的解决方案。而且,您还需要微调过渡条件。另外,您需要考虑在动画开始时停止游戏。并且希望使动画本身更有趣。例如,在Homescapes(Playrix)中,加载资源和启动菜单之间的过渡隐藏在沿着房屋墙壁下降的摄像头后面。但是,在用自己的双手重复这些步骤之后,您应该对如何使过渡变得漂亮有一个想法。下次见!^_^