unity图片为什么拉不进panel

unity图片为什么拉不进panel,第1张

unity图片因渲染顺序拉不进panel。

图片会被其他东西所遮挡拉不进panel,那是因为Unity的渲染顺序导致的,所以此时应该变更图片的父节点,让图片不在遮挡拉不进,然后不拖动图片。

图集是将很多零碎的2D小图整合成一张大图,方便unity渲染合批,降低渲染消耗。

打开unity3d。

打开unity3d通过“GameObject”“UI”“Panel”创建一个Panel面板。同样的方式创建两个Image作为窗口,设置不同的颜色,并设置为Panel的子物体。在脚本文件夹中创建一个“Tuozhuai_test”脚本。在脚本中创建两个变量offset作为偏移、siblingIndex遮挡数值(这个越大就会遮挡后面的窗口)。然后在OnPointDown方法中设置当前窗口siblingIndex1在顶层显示(因为只有两个窗口所以就这么处理了),并获得鼠标与窗口的偏移,在OnDrag鼠标拖拽的时候设置窗口位置为鼠标位置加上偏移。回到场景,把脚本放在两个Image窗口上面。运行游戏,我们现在就可以拖拽窗口,并且可以实现窗口的不遮挡。

Canvas组件代表UI被放置和渲染的虚拟空间。全部的UI元素必须是带有Canvas组件的Gameobject的子物体。当我们创建一个UI元素从菜单的时候,如果场景中没有canvas,将自动创建一个canvas

元素的渲染顺序:

元素的渲染顺序和元素在Hierarchy中显示的一样,第一个子节点先渲染,后面的后渲染。如果两个UI元素重叠,后面渲染的会覆盖前面渲染的。

RenderMode(渲染模式):

UI渲染到场景的方式

Screen Space-Overlay,Screen Space-Camera 和 World Space

一个Canvas包括全部UIElements将是高效的,但是场景中有多个Canvases也是可能的。在Canvas中嵌套Canvas也是可能的,为了优化的目的嵌套Canvas将使用和父Canvas相同的渲染模式。

Screen Space-Overlay:

在这种模式下,Canvas大小适配之后直接渲染,不通过关联到场景或者摄像机。如果屏幕的大小变化UI将自动匹配大小。UI将覆盖其他图像比如摄像机视图。

Note:

The Screen Space-Overlay canvas需要放置在hierarchy的最上层。这是一种build-in limitation。保证Space-Overlay canvas可以正常显示

Screen Space-Camera:

在这种模式下,Canvas呈现方式好像它是在摄像机前一定距离的平面对象上绘制的一样。UI在屏幕上的大小不随着距离的变化而变化,如果屏幕大小或者分辨率变化UI将自动适应。任何3D objects在场景中相比UI plane到摄像机的距离更近,将渲染到UI的前面。

World Space:

这个模式下作为场景中的一个元素。不同于Screen Space-Camera,plane不需要朝向camera,canvas的大小将由视角和到摄像机的距离来决定,其他场景中的物体可以穿过canvas

此组件用于控制canvas种全部的UI元素的大小。这个设置将影响canvas下的全部物体。

Properties:

UI Scale Mode:

决定UI元素的大小在canvas中是由什么决定的:

Constant Pixel Size(固定大小,不随屏幕大小变化)

Scale With Screen Size (随着屏幕大小的变化而进行变化)

Constant Physical Size(保持物理大小,不随屏幕大小和分辨率变化)

在Constant Pixel Size模式下进行设置:

Scale Factor:设置canvas下全部的UI元素的大小

Reference Pixels Per Unit:像素与单位的对应关系

在Scale With Screen Size下进行设置:

Reference Resolution : UI 布局的分辨率,这个分辨率将随着屏幕分辨率进行变化

Screen Match Mode:如果当前分辨率的纵横比不适合参考分辨率,则用于缩放画布区域的模式

Match Width or Height Scale the canvas area with the width as reference, the height as reference, or something in between.

Expand Expand the canvas area either horizontally or vertically, so the size of the canvas will never be smaller than the reference.

Shrink Crop the canvas area either horizontally or vertically, so the size of the canvas will never be larger than the reference.

Match:决定缩放的时候宽还是高作为引用

在Constant Physical Size下进行设置:

Physical Unit:设置物理单元的位置和尺寸。

Fallback Screen DPI:

Default Sprite DPI:

Reference Pixels Per Unit:

此组件用来控制一组的UI元素,不需要单独的处理他们,此组件也影响其子物体

Properties:

Alpha:此值从0到1,控制canvas及其下面全部子物体的alpha

interact able:决定组件是否可以被继承

Block Ray casts:此组件对Raycasts来说是否可以被视为collider

Ignore Parent Groups:是否受到父物体的CanvasGroup组件的影响,或者忽略他们

通常使用情况:

Canvas Renderer

此组件呈现包含图形化UI元素的对象

Property:

Text:组件显示的文本

Character:

Font:字体大小

Font Style:字体样式

Font Size:字体大小

Line Spacing:行间距

Rich Text:markup elements在text中是否支持

Paragraph:

Alignment:对齐方式

Align By Geometry:使用字形几何范围执行水平对齐,而不是字形度量

Horizontal Overflow:字体超出范围的解决方式

Vertical Overflow:字体太高超出范围的解决方式

Best Fit:Unity是否直接忽视大小属性,直接根据文本的大小匹配控件

Color:text的颜色

Material:渲染字体的材质

Hints:

Image控件显示的图片为Sprite类型,Raw Image可以接受任何类型的纹理

Properties :

Source Image:要现实的贴图

Color:要应用到图片上的颜色

Material:渲染图片的材质

Ray cast Target:可以被射线检测

Preserve Aspect:图片保留原始维度

Set Native Size:设置图片的维度到原始图片的像素大小

Raw Image可以显示任何类型的贴图

Property:

Texture:组件要显示的贴图

Color:

Material:

UV Rectangle:图片的偏移和大小

Details:通过修改UV Rectangle属性,可以缩放图片

此组件用来控制子控件的显示效果。mask将限制子元素的大小。如果子元素的大小比父元素大,将显示比父元素小的部分。

通常使用流程:

创建一个Panel对象,将需要显示的对象全部放到Panel对象下,给Panel添加一个Mask组件,全部的子物体只能显示在Panel范围内的部分

实现基于GPU的模板缓冲

对于大的区域显示很小的一部分使用RectMask2D。

RectMask2D的限制:

RectMask2D的优势:

1.Shadow

给图片或者文字添加一个阴影效果

Properties:

Effect Color:阴影颜色

Effect Distance:阴影距离

Use Graphic Alpha:混合图像和效果的颜色

2.OutLine

给文字或者图片添加描边效果。

Properties:

Effect Color:

Effect Distance:

Use Graphic Alpha:

3.Position as UV1

添加一个简单的位置作为UV1效果给文本和图片图像


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11421615.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存