关于unity Content Size Fitter 套 Content Size Fitter

首先:最好不要unity Content Size Fitter 套 Content Size Fitter
这样最后得到的变化可能会错误
在这里插入图片描述
unity也提示了,父物体如果有了,那么子物体就不要再加了。

但是你们要的需求:

一级父物体 ➡自适应大小➡二级父物体(可多个)➡自适应大小➡三级父物体(可多个)…………➡多个N级子物体(可多个)

是不是这样

如果不是,那你可以走了。留下来看看也好嘛,顺便点个赞

先按着我这个思路来

一级父物体需要的组件:

1、Content size fitter
2、Vertical Layout Group 活着 Horizontal Layout Group 或者 Grid Layout Group

二级父物体——N级父物体
Layout Element 或者 Vertical Layout Group 或者 Horizontal Layout Group 或者 Grid Layout Group

三选一
先解释一下选这三个的区别
1、举例一张图片是100 X 100,Layout Element 由于Vertical Layout Group 或者 Horizontal Layout Group 不会识别图片大小,当我们需要在这个地方插入一张图片来让一级父物体自适应这个图片的大小,让一级父物体的宽高变成100X100+其他。如下图
在这里插入图片描述
如果没有的话,这个宽高就是0在这里插入图片描述

2、后面Layout Group ,这里面用来放子物体
当然这里面一样可以继续套二级父物体。无限套娃~
但是这些需要做对的选择,如下图
在这里插入图片描述
必须要选这个,所有的Layout Group 都是这样

接下来的最后的N个子物体,自己设置好大小就可以了
当然你可以跟我一样选择grid layout group
在这里插入图片描述
在这里插入图片描述
这样即可,至于游戏效果图,没法展示,因为是公司项目。
不过如果还有哪里不理解的话,可以在评论问我,我会尽快回复的

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UnityContentSizeFitter的坑: 1. 如果你的RectTransform的宽高都是,那么ContentSizeFitter是不会起作用的。 2. 如果你的RectTransform的宽高都是固定的,那么ContentSizeFitter也是不会起作用的。 3. 如果你的RectTransform的宽高是由父级控件决定的,那么ContentSizeFitter会根据子级控件的大小来自动调整父级控件的大小。 4. 如果你的RectTransform的宽高是由子级控件决定的,那么ContentSizeFitter会根据子级控件的大小来自动调整父级控件的大小,但是如果子级控件的大小超出了父级控件的大小,那么ContentSizeFitter也无法起作用。 5. 如果你的RectTransform的宽高是由子级控件决定的,但是你又想让ContentSizeFitter起作用,那么你需要在子级控件上添加LayoutElement组件,并设置Preferred Width和Preferred Height属性,这样ContentSizeFitter才能根据子级控件的大小来自动调整父级控件的大小。 ### 回答2: 在使用Unity开发UI界面的过程中,可能会用到ContentSizeFitter这个组件。这个组件的主要作用是自动调整UI元素的大小,以适应内容的变化。但是这个组件有很多坑,需要注意。 第一个坑是设置HorizontalAlignment或VerticalAlignment属性时不起作用。 例如,你想让一个文本框垂直居中,可以设置VerticalAlignment属性为Middle。但是在实际使用中,你会发现设置这个属性并不会生效。这是因为ContentSizeFitter组件会自动调整UI元素的大小,导致VerticalAlignment属性失效。 第二个坑是如果ContentSizeFitter的父对象被设置了Layout Group组件,则ContentSizeFitter组件可能会失效。 Layout Group组件用于控制UI元素的排列方式,例如水平排列或垂直排列。但是如果你在ContentSizeFitter的父对象上添加了Layout Group组件,ContentSizeFitter组件可能会失效。这是因为Layout Group组件会自动调整UI元素的大小和位置,覆盖了ContentSizeFitter组件的作用。 第三个坑是当ContentSizeFitter组件和Layout Group组件同时存在时,它们的优先级是不确定的。 如果你在ContentSizeFitter的父对象上同时添加了Layout Group组件和ContentSizeFitter组件,那么它们之间的优先级是不确定的。有时ContentSizeFitter组件会覆盖Layout Group组件,有时Layout Group组件会覆盖ContentSizeFitter组件,导致UI出现意想不到的结果。 综上所述,虽然ContentSizeFitter组件能够自动调整UI元素的大小,但是在使用过程中需要注意以上三个坑。特别是当ContentSizeFitter组件和Layout Group组件同时存在时,需要保证它们的优先级正确,否则可能会导致UI出现不可预知的问题。 ### 回答3: UnityContentSizeFitter组件可以在UILayout组件中的容器元素上设置,用于根据元素的内容自动调整其大小。在使用ContentSizeFitter组件时,有些坑需要注意。本文就对一些常见的ContentSizeFitter的坑进行探讨。 坑一:ContentSizeFitter自适应只考虑本身内容的尺寸 ContentSizeFitter组件的自适应是根据本身的内容来计算尺寸的。如果在ContentSizeFitter组件所在的父级容器的RectTransform组件中设置了具体的尺寸,那么容器将只会根据ContentSizeFitter的内容大小进行缩放。如果父级容器的尺寸和ContentSizeFitter的自适应大小冲突,那么可能会出现内容被裁剪或者缩放错乱的情况。 坑二:ContentSizeFitter和GridLayoutGroup冲突问题 GridLayoutGroup组件可以在父级容器中创建一个网格布局。当GridLayoutGroup组件和ContentSizeFitter组件同时使用时,可能会出现布局错乱问题。此时需要在GridLayoutGroup组件和ContentSizeFitter组件中选择一个作为主要组件,根据需求进行适当调整。 坑三:ContentSizeFitter和Text组件的冲突问题 在使用ContentSizeFitter组件时,如果元素中包含Text组件,可能会出现Text内容显示不全的问题。此时需要在Text组件中设置Preferred Width或Preferred Height。这样可以避免内容被截断,同时通过ContentSizeFitter组件实现自适应大小。 坑四:ContentSizeFitter和自定义Mesh组件的冲突问题 自定义Mesh组件的渲染方式与Unity预制体的UI组件不同,如果在自定义Mesh组件中使用ContentSizeFitter组件,可能会出现布局错乱问题。此时需要根据具体情况进行剪裁操作或调整Mesh组件的大小来保证布局正常。 以上就是一些常见的使用ContentSizeFitter组件时要注意的坑。开发者在使用ContentSizeFitter组件时需要根据具体情况进行适当调整,避免出现尺寸错误或布局混乱的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值