9597a4e5922a6477ba210a00ae050a7438c89de2.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. System.register(["cc"], function (_export, _context) {
  2. "use strict";
  3. var _cclegacy, __checkObsolete__, __checkObsoleteInNamespace__, Vec3, view, CameraUtil, _crd;
  4. _export("CameraUtil", void 0);
  5. return {
  6. setters: [function (_cc) {
  7. _cclegacy = _cc.cclegacy;
  8. __checkObsolete__ = _cc.__checkObsolete__;
  9. __checkObsoleteInNamespace__ = _cc.__checkObsoleteInNamespace__;
  10. Vec3 = _cc.Vec3;
  11. view = _cc.view;
  12. }],
  13. execute: function () {
  14. _crd = true;
  15. _cclegacy._RF.push({}, "95c77QQpp1EjKj8UBFCCdKu", "CameraUtil", undefined);
  16. /*
  17. * @Author: dgflash
  18. * @Date: 2022-07-26 15:29:57
  19. * @LastEditors: dgflash
  20. * @LastEditTime: 2022-09-02 14:50:16
  21. */
  22. /** 摄像机工具 */
  23. __checkObsolete__(['Camera', 'Vec3', 'view']);
  24. _export("CameraUtil", CameraUtil = class CameraUtil {
  25. /**
  26. * 当前世界坐标是否在摄像机显示范围内
  27. * @param camera 摄像机
  28. * @param worldPos 坐标
  29. */
  30. static isInView(camera, worldPos) {
  31. var cameraPos = camera.node.getWorldPosition();
  32. var viewPos = camera.worldToScreen(worldPos);
  33. var dir = Vec3.normalize(new Vec3(), worldPos.subtract(cameraPos));
  34. var forward = camera.node.forward;
  35. var dot = Vec3.dot(forward, dir);
  36. var viewportRect = view.getViewportRect(); // 判断物体是否在相机前面
  37. return dot > 0 // 判断物体是否在视窗内
  38. && viewPos.x <= viewportRect.width && viewPos.x >= 0 && viewPos.y <= viewportRect.height && viewPos.y >= 0;
  39. }
  40. });
  41. _cclegacy._RF.pop();
  42. _crd = false;
  43. }
  44. };
  45. });
  46. //# sourceMappingURL=9597a4e5922a6477ba210a00ae050a7438c89de2.js.map