unity3d教程GUI深度控制(unity控制速度)

2023-03-06 05:59:20

 

GUI深度控制 通常如果我们制作的游戏没有复杂的 UI 表现,比较少会遇到 GUI 重叠的情况,所以比较不用理会到 GUI 的深度,哪一个叠在上面,哪一个压在下面,显得没那么重要;在较丰富的 UI 表现中,GUI 重叠将可能常会发生;如果是使用 GUI Texture 或 GUI Text,只需要调整 transform.position.z 就能轻易的为 GUI 调整顺序,但是,如果是使用 OnGUI() 撰写 GUI Control 的话,有写过的人都知道,它的显示顺序是依照程式码从第一行写下来依序列出,如此的话,就只能从程式码一句句依序撰写,如果要做 GUI 前後位置变动等等的动态,不就要设计一些判断方式来控制,好像相当的不方便。

教程领取地址​shop426839697.taobao.com/category-1505275330.htm?spm=a1z10.5-c-s.w4010-22331014617.32.28a4792882jgip&search=y&parentCatId=1503850742&parentCatName=%D0%D0%D2%B5%BD%CC%B3%CC%CA%D3%C6%B5%BF%E2&catName=Unity3D%BF%AA%B7%A2%D2%FD%C7%E6%BD%CC%B3%CC%BF%E2%23bd

有时候,我们可能习惯依功能、用途..等为程式分类并独立拆分成不同的 class 来使用,在 Unity 中,这更是必做的事情,因为每个 script 都是 compontent,所以,我们可能会为了写 OnGUI() 而使用一个单独的 script 专门用来写 GUI,再拉给场景中任一物件就可以显示出来,虽然撰写方式好像很简单,但当需求越来越大时,可能会发现 OnGUI 好像没那么灵活,活用性欠佳,毕竟它表面上看来是那么的程序化。

为了使 OnGUI() 能更灵活一点控制,最基本的需求就是每个 GUI Control 都能改变深度,以使它们改变前後的排列吧!有写过网页的人都知道,在 CSS 中的 z-index 是多么基本的东西;当然 Unity 的 GUI 也有类似的 - GUI.depth,从官网的的说明和范例中可以发现,这个 GUI.depth 和我们直接撰写的其他 GUI 不同,它必须是个别分开写在不同的 script 中才会正常发挥作用,也就是当 A script 的 GUI.depth = 0 及 B script 的 GUI.depth = 1 时,A script 中的 GUI 将会盖在 B script 的 GUI 上面。

于是,我们可能要重新思考,GUI 所代表的功能及用途上,是否也要像其他 Component 一样,拆分为不同的 script,而不再很直觉的在同一个 script 中写得长长一大串;虽然 Unity 的 GUI 并不像其它程式开发工具那样有视觉化的工具,只要将元件拉进 View 就会自动写好程式码,但其实 Unity 的 GUI 是可以很灵活的,只要将需求功能单独拆分开来制作,每个 GUI script 就像是我们为游戏内容制作的 Component 一样,需要什么 GUI 就拉什么进来,将会变得更为灵活而且复用性也更高,且更为客制化。


以上就是关于《unity3d教程GUI深度控制(unity控制速度)》的全部内容,本文网址:https://www.7ca.cn/baike/1958.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明

排行榜