skyline的粒子效果是有一堆复杂的xml配置而成,代码创建的时候需要根据xml来生成对象,鉴于xml格式官方并没详细提供,可以先用terraexplorer手动创建一个粒子效果对象,再用代码去找到这个对象,获取对象中的xml文件信息,具体的代码如下(C#版本):

 //查找对象
 string _itemid = _sgworld.ProjectTree.FindItem(@"粒子效果\效果");
            if (!string.IsNullOrEmpty(_itemid))
            {
            //找到转换对象
                var _teObj = _sgworld.ProjectTree.GetObject(_itemid);
                ITerrainEffect70 _teffect = _teObj as ITerrainEffect70;
                 //获取对象中的xml信息
                ITerrainLabel70 _label = _teObj as ITerrainLabel70;
                 string _effectXml = _teffect.EffectXML;
                //根据文本信息,设置xml中的属性
                 string _effnew = "$$PARTICLE$$UserDefine: ";
                //创建动态效果
                 var _pos = _sgworld.Window.CenterPixelToWorld(WorldPointType.WPT_TERRAIN).Position;
                 var _teff1 = _sgworld.Creator.CreateEffect(_sgworld.Creator.CreatePosition(_pos.X, _pos.Y, 100, AltitudeTypeCode.ATC_TERRAIN_RELATIVE), _effnew);
                  
            }