unity中ui界面,使用的是ugui插件,创建的界面,如何自适应不同的窗口大小。

   更新日期:2024.06.07
关键点:
0.自适应的测试:通过设置多种的屏幕大小进行测试,测试时最好要打开Maximize on Play,在屏幕放大的情况下容易观察自适应情况
1.所谓的自适应,就是:
a.保持相对位置不变。例如UI设计在屏幕的左上角,那么在各种的分辨率下都应该在左上角
b.保持宽高比例不变。由于分辨率有很多种,所以保持宽高等比例缩放是做不到的,要么是宽拉伸缩放的程度大些,要么是高拉伸缩放的程度大些
2.在UGUI中,可以通过设置UI的描点来设置UI的相对位置;可以通过设置Canvas下的Canvas Scaler来设置UI的缩放比例(Canvas下的Canvas是用来处理UI遮挡关系的)
3.Canvas Scaler组件:
a.当UIScaleMode为Constant Pixel Size时,UI在任何分辨率下都不会进行缩放拉伸,只有通过改变Scale Factor才会进行缩拉,因此不推荐使用该模式(而这种模式的优点就是你可以通过写自适应算法来改变Scale Factor的值,代替unity的自适应算法)
b.当UIScaleMode为Scale With Screen Size时,相当于使用unity的自适应算法,此时unity会根据屏幕分辨率自动调节Scale Factor的值。在做自适应时,一般要先选择一种比较主流的分辨率(即比较多的机型都采用这种分辨率)进行UI的设计,例如采用1024x576,在这里就是设置Reference Resolution的值了。
然后就是Screen Match Mode这个东西了:
当值为Match Width Or Height时:当值为0即处于Width那端时,表示屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。例如设置屏幕为800*600,然后改变为800*300,屏幕高度变小了,但UI并没有进行缩拉;同理当值为1即处于Height那端时,表示屏幕宽度对于UI大小完全没有任何影响,只有高度会对UI大小产生影响
当值为Expand时:举个例子,设计了一个button宽高为200*100,即宽高比为2:1,放在4:3的屏幕内;然后把这个button放在16:9的屏幕内,显然地,此时button是不能进行等比例的缩放的,即无法保持2:1的宽高比了,Expand的意思就是尽可能地使UI拉伸来适应屏幕
当值为Shrink时:同理,就是尽可能地使UI缩放来适应屏幕

4.一般来说,比较不错的设置就是:
Canvas Scaler 选择 Scale With Screen Size
Screen Match Mode 选择 Match Width Or Height,比例设为1,即只和高度进行适配。更多unity插件,就在纳金论坛上去查看。

  • 18975744800 :如何在unity中使用纯代码创建ui
    游炊倩5101 :答:要知道NGUI等可视化操作的UI插件、自带的UGUI系统的出现,都是源于同一个问题:自带的(On)GUI使用起来太麻烦了。这一套老版的GUI系统,全程使用代码编写,没错包括坐标、图片路径、触发后的函数等等。用过一段时间后,你会发现就算全部用代码编写也已经不是什么大不了的事情了。
  • 18975744800 :如何制作动态ui界面unity
    游炊倩5101 :答:Flinto 和Principle一样,也非常简单易用。特别的是,它提供了一个[Skech插件] ,能够直接将你Sketch中的Artbords和3D transform导出到Flinto中。四Origami Origami是一款免费的Quartz Composer的插件,Origami使QC的界面变得更加友好,更加适合进行移动App的界面设计。从2013年5月开始,Facebook的产品设计师们...
  • 18975744800 :unity3d中怎么创建UI按钮功能?
    游炊倩5101 :答:unity3d中通过对一个按钮的创建使用,从而了解unity3d中UI的使用。1、打开unity3d项目GameObject--UI--Button,创建一个按钮。2、在Rect Transform下可以改变按钮的布局位置大小等。3、在Image (Script)与Button(Script)中可以更详细的设置按钮的颜色等效果。4、展开Button在其中的Text中的Text(Script)中...
  • 18975744800 :一个unity场景中只能有一个camera
    游炊倩5101 :答:一个unity场景中只能有一个camera方法:1、调整摄像机ViewportRect、Depth等属性。2、使用RawImage和RenderTexture在UI界面上投影其他相机拍摄的内容。3、Unity是基于GNOME桌面环境的用户界面,由Canonical公司开发,主要用于Ubuntu操作系统。Unity最初出现在UbuntuNetbook10.10中。它最初的目的是更有效地利用上网...
  • 18975744800 :unity ui 为什么要框架
    游炊倩5101 :答:2.如何实现界面与游戏数据的沟通?例如点击排行榜,能列出最新的排名,点击购买车辆,能扣钱并买入新的车辆。一开始我的做法(我相信也是大部分新手最喜欢的做法)就是为每个要触发功能的UI添加一个脚本,然后添加一个public gameobject,然后拖入触发UI时要控制的object。在脚本的OnClick等函数里实现逻辑...
  • 18975744800 :unity中guiTexture可以换成什么?
    游炊倩5101 :答:除了使用 UI 组件之外,您还可以使用 Mesh Renderer 和 Texture 组件来创建自定义的 GUI 元素。Mesh Renderer 组件可以用于渲染 3D 模型,而 Texture 组件则可以用于显示 GUI 文本和图片。总之,为了获得更好的用户体验和更好的性能,建议在 Unity 中使用最新的 Unity UI 系统,并尽可能避免使用旧的 ...
  • 18975744800 :unity 一个ui界面多少drawcall
    游炊倩5101 :答:Unity在 Player Setting 里的两个功能选项 Static Batching 与 Dynamic Batching。功能描述如下:Static Batching 是将标明为 Static 的静态物件,如果在使用相同材质球的条件下,Unity 会自动帮你把这两个物件合并成一个 Batch,送往 GPU 来处理。这功能对效能上非常的有帮助,所以是需要付费才有的。Dyna...
  • 18975744800 :游戏设计中UI设计一般使用什么软件?
    游炊倩5101 :答:通常,策划会使用visio或者word、excel之类的先把功能区域和按钮画好,交给美术来制作皮肤。对美术来说,photoshop就足够用了。不过现在比较成熟和有经验策划会提出更多对于交互体验的设计要求,使用GUIStudio或者AxureRP都是不错的交互界面设计软件。游戏UI的最终实现需要客户端程序员根据设计的需求,编写代码...
  • 18975744800 :Unity 关于特效和UI显示的优先级问题
    游炊倩5101 :答:这种适合做纯2D游戏。  缺点是对特效不友好,因为界面永远显示在屏幕最前方 会在任何情况下都会遮挡住特效。Canvas自适应屏幕大小,UI由相机负责渲染,这种非2D游戏都运用。由于是相机负责渲染,所以,特效可以被显示出来。可以用UI相机显示,也可以又专门的特效相机或者主相机渲染。不同相机之间,...
  • 18975744800 :unity怎么实现点击物体后出现UI,位置在鼠标左侧或右侧?
    游炊倩5101 :答:用射线检测碰撞到的物体tag值,要是你点击到的物体是你想弹出UI的物体那就生成UI界面。至于位置,获取点击的屏幕坐标v2(世界坐标换成屏幕坐标),然后再把UI界面的位置根据v2的位置进行设置就行了。
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网