黄框的区域是可点击区域,大的背景图是canvas的区域,现在屏幕比canvas宽,所以两边有黑边,
蓝色的框中为点击的点。
在这里插入图片描述胜多负少第三方士大夫
在这里插入图片描述

以下是获取包围盒及坐标代码:

		//获取可点击区域世界包围盒
  		let worldBox = bg.getComponent(UITransform).getBoundingBoxToWorld();
  		//获取可点击区域本地包围盒
        let localBox =  bg.getComponent(UITransform).getBoundingBox();
		
		//可点击区域世界坐标
        let pointWorld = event.getLocation();
        //可点击区域ui坐标
        let pointCanvas = event.getUILocation();

        console.log("----------- worldBox:" + worldBox);
        console.log("----------- localBox:" + localBox);
        console.log("----------- pointWorld:" + pointWorld);
        console.log("----------- pointCanvas:" + pointCanvas);
        console.log("----------- worldBox->worldPoint:" + worldBox.contains(pointWorld));
        console.log("----------- worldBox->pointCanvas:" + worldBox.contains(pointCanvas));


        console.log("----------- localBox->pointCanvas:" + localBox.contains(pointCanvas));
        console.log("----------- localBox->worldPoint:" + localBox.contains(pointWorld));

结果 :
世界坐标是以屏幕左下角为(0,0)点,获得的是屏幕的实际像素坐标,
ui坐标是以canvas的左下角为(0,0)点,获得是相对于canvas的最终坐标,
世界包围盒其实也是以canvas的左下角为(0,0)点,而不是以屏幕左下角为0点(这个真是这样?但数据就是这么说的!!!)
本地包围盒是以父节点为坐标系下的区域数据。

Logo

这里是一个专注于游戏开发的社区,我们致力于为广大游戏爱好者提供一个良好的学习和交流平台。我们的专区包含了各大流行引擎的技术博文,涵盖了从入门到进阶的各个阶段,无论你是初学者还是资深开发者,都能在这里找到适合自己的内容。除此之外,我们还会不定期举办游戏开发相关的活动,让大家更好地交流互动。加入我们,一起探索游戏开发的奥秘吧!

更多推荐