动态添加BoxCollider组件,size设置无效的bug

  • Creator 版本:2.2.1

  • 目标平台: web

  • 详细报错信息,包含调用堆栈:

  • 重现方式:

    var testnode = new cc.Node("");
    var sp = testnode.addComponent(cc.Sprite);
    var BoxCollider = sp.addComponent(cc.BoxCollider);
    BoxCollider.editing = true;
    BoxCollider.size = cc.size(100,38);
    this.node.addChild(testnode);

  • 之前哪个版本是正常的 :

  • 手机型号 :

  • 手机浏览器 :

  • 编辑器操作系统 :

  • 编辑器之前是否有其它报错 :

  • 出现概率:

  • 额外线索:

做一个空的预制体,addComponent(cc.BoxCollider);也是设置size无效,是不是动态创建Node节点方式有Bug

    var manager=cc.director.getCollisionManager();  // 获取碰撞检测类
    manager.enabled = true   //开启碰撞检测
    manager.enabledDebugDraw=true   //显示碰撞检测区域
    cc.director.getCollisionManager().enabledDrawBoundingBox = true;    //开启碰撞组件的包围盒绘制

    var testnode = new cc.Node("11111");
    var sp = testnode.addComponent(cc.Sprite);
    var BoxCollider = sp.addComponent(cc.BoxCollider);
    BoxCollider.editing = true;
    BoxCollider.size = cc.size(250,380);
    this.node.addChild(testnode);

发现是在web浏览器上,绘制碰撞区域有bug,在模拟器上看是正常的。

设置节点的宽高应该调用 setContentSize 这个接口:

node.setContentSize(100, 100);

我也有同样的问题,版本2.3.3

2.4.2 还是有这个问题