PhysicsManager.ts 994 B

12345678910111213141516171819202122232425262728
  1. import { _decorator, Component, Node, PhysicsSystem2D, EPhysics2DDrawFlags, Vec2, debug } from 'cc';
  2. const { ccclass, property } = _decorator;
  3. @ccclass('PhysicsManager')
  4. export class PhysicsManager extends Component {
  5. @property
  6. debugDraw: boolean = false;
  7. start() {
  8. // 启用物理系统
  9. PhysicsSystem2D.instance.enable = true;
  10. // 设置物理系统的重力为零(因为是2D平面游戏)
  11. PhysicsSystem2D.instance.gravity = new Vec2(0, 0);
  12. // 如果启用了调试绘制,显示碰撞体
  13. if (this.debugDraw) {
  14. PhysicsSystem2D.instance.debugDrawFlags =
  15. EPhysics2DDrawFlags.Aabb |
  16. EPhysics2DDrawFlags.Pair |
  17. EPhysics2DDrawFlags.CenterOfMass |
  18. EPhysics2DDrawFlags.Joint |
  19. EPhysics2DDrawFlags.Shape;
  20. } else {
  21. PhysicsSystem2D.instance.debugDrawFlags = EPhysics2DDrawFlags.None;
  22. }
  23. }
  24. }