之前没注意都用缩放比例来调节大小,今天突然发现任何3D节点对象都没有具体尺寸的,只能靠缩放多少倍来调节大小,这样很不方便,因为原始模型的尺寸不一,今天想调一下地面的大小,竟然无从下手了,不知道设多少倍好,本来设置长多少宽多少就很方便了。
比如我场景里两个调到了视觉上差不多大小但原始尺寸不同的球体,一个是0.13倍,一个是21倍,那我要怎么从数值上精确的把他们的大小调到一致呢?
从console打印节点信息,长宽也是提示异常,没法获取
UITransform 组件 在 UI/UITransform 下面添加到上面就可以了。
const uiTransform = this.getComponent(UITransform);
// 方法一
uiTransform.setContentSize(200, 120);
uiTransform.setAnchorPoint(0, 0.5);
// 方法二
uiTransform.width = 200;
uiTransform.height = 120;
uiTransform.anchorX = 0;
uiTransform.anchorY = 0.5;
出模型按标准尺寸出。。。
一般是英尺
1英寸=2.54cm
试了下在uiTransform这个组件里调节width和height对3D物体没有效果。3D物体应该没有width和height概念,如果有应该也是一个三维向量XYZ来对应长宽高。
模型很难统一,况且模型不一定都是自己做的。
嗯嗯 这个好像是针对 UI 节点才有效果的,那只能缩放了,没有好办法了。
况且模型不一定都是自己做的。
你的问题在这里
不管谁做模型,反正我觉得给每个物体设定一个具体的长宽高没有错,会方便很多,也符合真实世界,就算UNITY也没有,COCOS要是有,那至少在这一个方面比他强了。这个实现应该不难,应为系统本来就有坐标系了,就已经有长度单位了(虽然是虚拟单位,但也已经有一个参考单位了,物体长度单位和坐标单位统一就行了)。只需要在节点上加一个属性就行。
游戏引擎里模型的尺寸没用啊,模型表面是一堆的网格数据、纹理映射数据,
提供给你调整模型整体的大小?这跟缩放没区别。
或者你说的是想在游戏引擎的编辑器里建模?那这应该在建模软件里。
虽然调整缩放就是调整大小,但是始终有区别,比如我的场景里用立方体搭建了一个房间,调整后房间的缩放长度是2(只能看到这个缩放倍数,没有具体长度),我现在需要做一张床,长度是房间长度的一半,由于没有长度概念,我模型随便设计个大小,然后拖到场景里来设置缩放倍数,这时候问题来了,我要怎么设置床的缩放倍数才可以正好为房间的一半长呢?房间长度缩放是2倍,我床设置成1倍?显然不行,那么只能靠肉眼来猜测大小,然后一点点放大缩小来比对,是不是很麻烦而且不能做到很精确?
我也觉得应该有个大小尺寸,有了之后应该会更方便更舒服,但是既然没有,也应该有他的道理吧
我觉得在场景里构建一个球体或长方体的时候,在底层实现上肯定是有半径和长宽高这些的信息存在的,不然怎么画出来各种大小的物体?只是这个已经存在的属性没有在编辑器上显示出来也没有提供接口给用户来使用而已。
既然没有提供接口出来,就一定有它不提供的意义和好处,只是你我还没发觉吧 
模型在底层其实没有半径或者长宽高这些信息存在的,有的只是每个顶点的坐标
这位大佬说的是正解,我们引擎内部的模型单位是 1单位 = 1米,如果做一个归一化的正方体,就是 1m * 1m * 1m,缩放N倍也就是 N米
3D 内容生产管线要标准化,不能随意调,如果美术侧不统一度量衡和资源生产尺度,到引擎里面怎么调都很尴尬
好吧,既然官方大大这么说了,不提供尺寸接口应该是有他的道理,只是我现在的水平还无法体会吧。
往规格化,规范化上想就行了,这种东西是一条流水线上的,不是单纯某个工种的事情
该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。
