| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- System.register(["cc"], function (_export, _context) {
- "use strict";
- var _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, Vec3, view, CameraUtil, _crd;
- _export("CameraUtil", void 0);
- return {
- setters: [function (_cc) {
- _cclegacy = _cc.cclegacy;
- __checkObsolete__ = _cc.__checkObsolete__;
- __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
- Vec3 = _cc.Vec3;
- view = _cc.view;
- }],
- execute: function () {
- _crd = true;
- _cclegacy._RF.push({}, "95c77QQpp1EjKj8UBFCCdKu", "CameraUtil", undefined);
- /*
- * @Author: dgflash
- * @Date: 2022-07-26 15:29:57
- * @LastEditors: dgflash
- * @LastEditTime: 2022-09-02 14:50:16
- */
- /** 摄像机工具 */
- __checkObsolete__(['Camera', 'Vec3', 'view']);
- _export("CameraUtil", CameraUtil = class CameraUtil {
- /**
- * 当前世界坐标是否在摄像机显示范围内
- * @param camera 摄像机
- * @param worldPos 坐标
- */
- static isInView(camera, worldPos) {
- var cameraPos = camera.node.getWorldPosition();
- var viewPos = camera.worldToScreen(worldPos);
- var dir = Vec3.normalize(new Vec3(), worldPos.subtract(cameraPos));
- var forward = camera.node.forward;
- var dot = Vec3.dot(forward, dir);
- var viewportRect = view.getViewportRect(); // 判断物体是否在相机前面
- return dot > 0 // 判断物体是否在视窗内
- && viewPos.x <= viewportRect.width && viewPos.x >= 0 && viewPos.y <= viewportRect.height && viewPos.y >= 0;
- }
- });
- _cclegacy._RF.pop();
- _crd = false;
- }
- };
- });
- //# sourceMappingURL=9597a4e5922a6477ba210a00ae050a7438c89de2.js.map
|