目前思路:
//得到射线
var ray = new Cesium.Ray(origin, direction);
//发射线与场景中碰撞得到第一个碰撞结果,
//碰撞到场景中3D瓦片模型,返回碰撞结果,包括碰撞到的模型及位置
//未检测到碰撞返回undefined,
//碰撞地形返回object是undefined,但position有值
var result = scene.pickFromRay(ray /*,[],0.1*/ );
在官方示例上做销毁操作依然同样问题,不知道为什么。
目前找到一个办法:
_viewer.scene.primitives.remove(primitive) → Boolean
既然销毁不行就做移除操作。实测有效,对象被移除了。
@admin [#1楼](#comment1)
感觉似乎不是,我销毁前还判断了.isDestroyed()
if (ps && ps instanceof Cesium.ParticleSystem && !ps.isDestroyed()) {
// ps.destroy();//DeveloperError: This object was destroyed, i.e., destroy() was called.
ps.show = false;
}