示例#1
0
 internal void SetOverlay(OverlayObjectData mObjectData)
 {
     if (mObjectData == null)
     {
         return;
     }
     if (!Overlay)
     {
         Overlay = OverlayObject.Create(this, mObjectData);
     }
     else
     {
         Overlay.SetData(mObjectData);
     }
 }
示例#2
0
 internal void SetOverlay(OverlayObjectData oData)
 {
     if (oData == null || IsDisabled || Blocked)
     {
         return;
     }
     if (Overlay)
     {
         GameObject old = Overlay.gameObject;
         Destroy(old);
     }
     if (StaticBlocker)
     {
         GameObject old = StaticBlocker.gameObject;
         DestroyImmediate(old);
     }
     Overlay = OverlayObject.Create(this, oData, MBoard.TargetCollectEventHandler);
     Overlay.SetToFront(false);
 }
示例#3
0
        /// <summary>
        /// Create new OverlayObject for gridcell
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="oData"></param>
        /// <param name="addCollider"></param>
        /// <param name="radius"></param>
        /// <param name="isTrigger"></param>
        /// <returns></returns>
        public static OverlayObject Create(GridCell parent, OverlayObjectData oData, Action <int> TargetCollectEvent)
        {
            if (!parent || oData == null)
            {
                return(null);
            }
            GameObject     gO         = null;
            SpriteRenderer sR         = null;
            OverlayObject  gridObject = null;

            sR = Creator.CreateSprite(parent.transform, oData.ObjectImage, parent.transform.position);
            gO = sR.gameObject;

            gridObject = gO.GetOrAddComponent <OverlayObject>();
#if UNITY_EDITOR
            gO.name = "overlay " + parent.ToString();
#endif
            gridObject.SetData(oData);
            gridObject.SRenderer          = sR;
            gridObject.TargetCollectEvent = TargetCollectEvent;
            return(gridObject);
        }
示例#4
0
        /// <summary>
        /// Create new OverlayObject for gridcell
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="oData"></param>
        /// <param name="addCollider"></param>
        /// <param name="radius"></param>
        /// <param name="isTrigger"></param>
        /// <returns></returns>
        public static OverlayObject Create(GridCell parent, OverlayObjectData oData)
        {
            if (!parent || oData == null)
            {
                return(null);
            }
            GameObject     gO            = null;
            SpriteRenderer sR            = null;
            OverlayObject  overlayObject = null;

            if (oData.behaviorPrefab)
            {
                Behaviour bH = Instantiate(oData.behaviorPrefab);
                gO = bH.gameObject;
                gO.transform.position   = parent.transform.position;
                gO.transform.localScale = parent.transform.lossyScale;
                gO.transform.parent     = parent.transform;
                sR        = gO.GetOrAddComponent <SpriteRenderer>();
                sR.sprite = oData.ObjectImage;
            }
            else
            {
                sR = Creator.CreateSpriteAtPosition(parent.transform, oData.ObjectImage, parent.transform.position);
                gO = sR.gameObject;
            }


            overlayObject = gO.GetOrAddComponent <OverlayObject>();
#if UNITY_EDITOR
            gO.name = "overlay " + parent.ToString();
#endif
            overlayObject.Init(parent.Row, parent.Column, parent);
            overlayObject.SetData(oData);

            return(overlayObject);
        }
示例#5
0
 public void SetOverlayObject(GridCell gCell, OverlayObjectData oData)
 {
     gCell.SetOverlay(oData);
 }
示例#6
0
 internal virtual void SetData(OverlayObjectData mData)
 {
     OOData = mData;
     SetToFront(false);
 }
示例#7
0
        internal void SetObject(int ID)
        {
            IsDisabled = false;
            MatchObjectData mOD = GOSet.GetMainObject(ID);

            if (mOD != null)
            {
                SetMatchObject(mOD);
                return;
            }

            OverlayObjectData oOD = GOSet.GetOverlayObject(ID);

            if (oOD != null)
            {
                SetOverlay(oOD);
                return;
            }

            UnderlayObjectData uOD = GOSet.GetUnderlayObject(ID);

            if (uOD != null)
            {
                SetUnderlay(uOD);
                return;
            }

            DynamicClickBombObjectData cdOD = GOSet.GetDynamicClickBombObject(ID);

            if (cdOD != null)
            {
                SetDynamicClickBomb(cdOD);
                return;
            }

            if (ID == GOSet.FallingObject.ID)
            {
                SetFalling(GOSet.FallingObject);
                return;
            }

            BaseObjectData bOD = GOSet.GetObject(ID);

            if (bOD != null && GameObjectsSet.IsDisabledObject(bOD.ID))
            {
                SetDisabledObject(bOD);
                return;
            }

            if (bOD != null && GameObjectsSet.IsBlockedObject(bOD.ID))
            {
                SetBlockedObject(bOD);
            }

            DynamicBlockerData dbOD = GOSet.GetDynamicBlockerObject(ID);

            if (dbOD != null)
            {
                SetDynamicBlockerObject(dbOD);
                return;
            }

            StaticBlockerData sbOD = GOSet.GetStaticBlockerObject(ID);

            if (sbOD != null)
            {
                SetStaticBlockerObject(sbOD);
                return;
            }
        }