今天做项目的时候遇到了多边形碰撞体的一些问题,我通过预制体提前生成了一个挂载多边形碰撞体的节点,这个多边形碰撞体我设置的是顺时针,但是通过代码动态添加到场景中就自动变成了逆时针,这是cocos引擎的特性吗?
预制体中设置的顺时针顶点——
动态添加后自动变成了逆时针——
这是动态添加的相关代码——
resources.loadDir("Obstacle", Prefab, (err: Error, prefabs: Prefab[]) => {
if (err) {
throw err;
}
prefabs.forEach(prefab => {
this.prefabMap[prefab.name] = prefab;
});
this.addObstacle(this.layer);
})
//为图层的每一个瓦块添加碰撞体
addObstacle(layer: TiledLayer) {
//省略部分代码
const colliderType = this.getCollider(gid);
if (colliderType) {
const prefab = this.prefabMap[colliderType];
let colliderNode = instantiate(prefab);
colliderNode.setParent(this.Obstacle);
//let colliderNodePosition =省略 ;
colliderNode.setPosition(colliderNodePosition);
}
// else {
// }
}
}
}
}
尝试了多次,在预制体中添加或删除point顶点、调整顶点位置等均能生效,只是一旦顶点连接顺序是顺时针,那么到了动态生成后就会自动变成逆时针,但如果本身就是逆时针那顶点顺序就不会变。想问下这是cocos引擎的特性吗?我在开发文档也没找到啊,有没有大佬能解释下为什么会这样,或者有没有什么解决办法

