当前位置:   article > 正文

Unity3d自学记录 Canvas_additional shader channels

additional shader channels
  • Canvas

画布,是所有UI元素的载体,有三种渲染模式(Render Mode)。

  • Render Mode 
  • Overlay

       这种渲染模式会将所有UI元素渲染在整个场景的上方,并且自动适应窗口变化。

  1. Pixel Perfect 抗锯齿效果,enmmm,使渲染效果更加顺滑 ↖(^ω^)↗
  2. Sort Order 如果有多个Overlay的canvas的话,数值越大,越后渲染(也就是覆盖掉前面渲染过的像素点)
  3. Target Display 这个的话,我想是为了方便调试UI界面
  4. Additional shader Channels  (//▽//)这个没用过,不过有一篇大佬博客 请步行!===》

       这种渲染模式会要求指定一个渲染摄像机,如果指定的话,在scene视图里,就会发现该canvas会移动到渲染摄像机的可视范围内,并且跟随摄像机t的变化而变化,比如旋转呀什么的,但是如果没有添加Camera,就会默认为Overlay渲染模式。

     1. Plane Distance 距离所属渲染摄像机的远近,可以用来,enmmm,用来进行调整整个canvas上的元素的大小。。。

     2. Sorting Layer 指这个画布所在的排序图层,先对图层进行排序,然后对每个图层的某个元素进行Order in Layer的排序。

  • Camera
  • world

      这种渲染模式就是纯粹的将一个画布放置在3D世界里,可以做一些比如广告牌,额,对话,血量啥的,嗯,强行解释最为 致命,(*´Д`*),会要求一个事件摄像机,做一些交互,不指定也没关系,顶多交互不了呗。这个时候Canvas的RectTransform是可编辑的。

以上就是“笨”人对Canvas的(wu)记(nao)录(ji)。 完结撒花(Θ∀Θ#)

不对!我还要记录一些canvas组件,再去买些花,一会再撒一次。。

Canvas Scaler

       Canvas Scaler组件,缩放组件,它是对整个画布进行影响的,比如受到影响的有字体和边框(假装我的水平可以翻译文档( ̄▽ ̄")),这个组件包括三种模式,下面针对不同模式进行测试,记录(测试,如果测试成功的话,就截图哈哈

  • Constant Pixer Size

       这个模式呀,比如打包android的时候,会发现咦我的UI元素变小了,额,其实不是变小了,而是你的手机屏幕分辨率太高了。

       名词解析:

  1. Scale Factor 

       缩放因子,给出一个等式:Screen Size==Canvas Size*Scale Factor,所以说,假如,我将其从1变成了2,假如,此时Screen Size为1920*1080,那么此时的Canvas Size为960*540,不止这个产生变化,canvas下所有的元素的scale都会乘以这个Scale Factor,在上述情况下,会变成之前的两倍。

      2. Reference Pixels Per Unit

       每个sprite设置中,都有一个设置是单位转换的,sprite的像素表现到unity编辑器中,一般默认是100:1,也就是100像素等于1 unit,所以如果直接在sprite中调节100变到10,你会发现,呀,图片变大了十倍!(真是个小机灵鬼(*≧m≦*)),上面那个是sprite设置上的,那这里的又表示啥呢?咳咳,来来来,拿出珍藏的公式:UI大小(pixel)=原图大小/(Pixels Per Unit/Reference Pixels Per Unit),enmmm,是不是很晕,晕就对了,学习哪有不晕的,拿出珍藏的大佬博客链接,去吧===》

  •  Scale With Screen Size

       此时UI元素的位置与大小按屏幕分辨率参照值来取相对值。若当前屏幕分辨率大于参照屏幕分辨率,则Canvas依然是按参照屏幕分辨率布局,然后放大来适应屏幕。同样的,若当前屏幕分辨率小于参照屏幕分辨率,Canvas会缩小来适应。若当前屏幕分辨率的宽高比跟参照分辨率不一样,垂直跟水平两个方向同时适应屏幕会发生不均匀拉伸,而这通常不是我们想要的。取而代之的是,Reference Resolution组件会使Canvas分辨率偏离参照分辨率,以此保持宽高比不变。通过设置Screen Match Mode可达到此目的。(这段话摘抄自 ===》

     Screen Match Mode:

      1.Scale with screen size

      当处于最左边时即比例为0时,屏幕高度对于UI大小完全没有任何影响,只有宽度会对UI大小产生影响。假设宽度为Reference Resolution宽度的x倍,则UI整体缩放为Reference Resolution状态下的x倍。也就是说只有宽度等于Reference Resolution宽度时,才能做到pixel perfect,否则像素就会有拉伸当处于最右边时,与上述情况正好相反,决定整体缩放值的是高度,而宽度则没有任何影响,所以,你只要记住横版游戏以高度缩放,竖版游戏按宽度缩放。(摘抄自===》

      2. Expand

     当屏幕分辨率大于参考分辨率时,选择变化较小的一个方向(横向还是纵向),作为放大Canvas Scale的标准,另一方向上的变化则是在整体缩放以后再进行补偿性的变化。此举旨在减少扩大分辨率时由于非等比扩大而对UI整体布局造成影响。适合制作较小标准尺寸,扩充到较大屏幕。(摘抄自===》

      3.Shrink

     和Expand类似,但是更适合于缩小的情形。它会在屏幕尺寸缩小时,通过缩小CanvasScale尽量减少由于非等比缩小对布局产生的影响。按照影响较小的一个方向缩小的比例去缩小CanvasScale,然后再通过变形调整另外一个方向。(摘抄自===》

 Graphic Raycaster

    主要用于UI上的射线检测。

    1.Ignore Reversed Graphics 

    是否忽略反方向的UI图形,比如当一张图片反转到180+度后,它还需不需要进行射线检测。

    2.Blocking Objects 以及 Blocking Mask

    这个射线呀,是可以被2D或者3D对象进行阻挡的(前提render mode 不是overlay哦),这个时候,可以自行选择。

好的,拿出刚才买的花,完结撒花!o(*▽///ω\*) 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/111213
推荐阅读
相关标签
  

闽ICP备14008679号