| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | #if FAIRYGUI_DRAGONBONESusing UnityEngine;using DragonBones;namespace FairyGUI{    /// <summary>    ///     /// </summary>    public partial class GLoader3D : GObject    {        UnityArmatureComponent _armatureComponent;        /// <summary>        ///         /// </summary>        /// <value></value>        public UnityArmatureComponent armatureComponent        {            get { return _armatureComponent; }        }        /// <summary>        ///         /// </summary>        /// <param name="asset"></param>        /// <param name="width"></param>        /// <param name="height"></param>        /// <param name="anchor"></param>        public void SetDragonBones(DragonBonesData asset, int width, int height, Vector2 anchor)        {            if (_armatureComponent != null)                FreeDragonBones();            _armatureComponent = UnityFactory.factory.BuildArmatureComponent(asset.armatureNames[0], asset.name, null, asset.name);            _armatureComponent.gameObject.transform.localScale = new Vector3(100, 100, 1);            _armatureComponent.gameObject.transform.localPosition = new Vector3(anchor.x, -anchor.y, 0);            SetWrapTarget(_armatureComponent.gameObject, true, width, height);            var ct = _armatureComponent.color;            ct.redMultiplier = _color.r;            ct.greenMultiplier = _color.g;            ct.blueMultiplier = _color.b;            _armatureComponent.color = ct;            OnChangeDragonBones(null);        }        protected void LoadDragonBones()        {            DragonBonesData asset = (DragonBonesData)_contentItem.skeletonAsset;            if (asset == null)                return;            SetDragonBones(asset, _contentItem.width, _contentItem.height, _contentItem.skeletonAnchor);        }        protected void OnChangeDragonBones(string propertyName)        {            if (_armatureComponent == null)                return;            if (propertyName == "color")            {                var ct = _armatureComponent.color;                ct.redMultiplier = _color.r;                ct.greenMultiplier = _color.g;                ct.blueMultiplier = _color.b;                _armatureComponent.color = ct;                return;            }            if (!string.IsNullOrEmpty(_animationName))            {                if (_playing)                    _armatureComponent.animation.Play(_animationName, _loop ? 0 : 1);                else                    _armatureComponent.animation.GotoAndStopByFrame(_animationName, (uint)_frame);            }            else                _armatureComponent.animation.Reset();        }        protected void FreeDragonBones()        {            if (_armatureComponent != null)            {                _armatureComponent.Dispose();                if (Application.isPlaying)                    GameObject.Destroy(_armatureComponent.gameObject);                else                    GameObject.DestroyImmediate(_armatureComponent.gameObject);            }        }        protected void OnUpdateDragonBones(UpdateContext context)        {            if (_armatureComponent != null)            {                var ct = _armatureComponent.color;                ct.alphaMultiplier = context.alpha * _content.alpha;                _armatureComponent.color = ct;            }        }    }}#endif
 |