我有一个场景,节点树是下面这样
我期望在播放时,拖动app窗口边缘,改变window的尺寸,此时,Node2D可以进行自适应,当window的长宽比和Sprite一致(也就是和项目设置中的窗口长宽比一致),都为16:9时,Sprite覆盖整个window;
当window窗口尺寸变得很窄,比如长宽比变成3:9,如下图,Sprite覆盖整个window,并左右居中,左右多出的部分被裁切没关系,Sprite高度与window高度一致
当window窗口尺寸变得很宽,比如长宽比变成21:6,如下图,Sprite左右居中,左右留黑边,不被裁切,Sprite高度与window高度一致
我本来想要用设置项目的拉伸比例为“keep width”来实现,宽窗口时的效果没问题,但是窄窗口时,我无论如何无法让Node2D缩放并同时位移到居中的位置。所以只能又把拉伸比例设置为“expend”,试着用纯代码实现,依然无法实现上面两张图上的期望效果。
我在根节点Test的代码如下:
我期望在播放时,拖动app窗口边缘,改变window的尺寸,此时,Node2D可以进行自适应,当window的长宽比和Sprite一致(也就是和项目设置中的窗口长宽比一致),都为16:9时,Sprite覆盖整个window;
当window窗口尺寸变得很窄,比如长宽比变成3:9,如下图,Sprite覆盖整个window,并左右居中,左右多出的部分被裁切没关系,Sprite高度与window高度一致
当window窗口尺寸变得很宽,比如长宽比变成21:6,如下图,Sprite左右居中,左右留黑边,不被裁切,Sprite高度与window高度一致
我本来想要用设置项目的拉伸比例为“keep width”来实现,宽窗口时的效果没问题,但是窄窗口时,我无论如何无法让Node2D缩放并同时位移到居中的位置。所以只能又把拉伸比例设置为“expend”,试着用纯代码实现,依然无法实现上面两张图上的期望效果。
我在根节点Test的代码如下: