Пример #1
0
 internal void SetUnderlay(UnderlayObjectData mObjectData)
 {
     if (mObjectData == null || IsDisabled || Blocked)
     {
         return;
     }
     if (Underlay)
     {
         GameObject old = Underlay.gameObject;
         Destroy(old);
     }
     if (StaticBlocker)
     {
         GameObject old = StaticBlocker.gameObject;
         DestroyImmediate(old);
     }
     Underlay = UnderlayObject.Create(this, mObjectData, MBoard.TargetCollectEventHandler);
     Underlay.SetToFront(false);
 }
Пример #2
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 UnderlayObject Create(GridCell parent, UnderlayObjectData oData, Action <int> TargetCollectEvent)
        {
            if (!parent || oData == null)
            {
                return(null);
            }
            GameObject     gO         = null;
            SpriteRenderer sR         = null;
            UnderlayObject gridObject = null;

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

            gridObject = gO.GetOrAddComponent <UnderlayObject>();
#if UNITY_EDITOR
            gO.name = "underlay " + parent.ToString();
#endif
            gridObject.SRenderer          = sR;
            gridObject.TargetCollectEvent = TargetCollectEvent;
            gridObject.SetData(oData);

            return(gridObject);
        }