예제 #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="position">world position</param>
        public void DoRecoverAfterChoose(Vector3 position)
        {
            Debug.Log("DoRecoverAfterChoose");


            if (_flockStatus != FlockStatusEnum.HIDE)
            {
                return;
            }

            _flockStatus = FlockStatusEnum.RECOVER;

            //  将原组件启用
            gameObject.SetActive(true);

            transform.SetParent(GetParentContainer());


            // 调整位置
            RectTransform rect = GetComponent <RectTransform>();

            rect.position = position;


            // 恢复原位
            RecoverToOriginPosition();
        }
예제 #2
0
        /// <summary>
        ///     初始化基础数据
        /// </summary>
        /// <param name="manager"></param>
        /// <param name="dataId"></param>
        /// <param name="type"></param>
        /// <param name="isCard"></param>
        protected void InitBase(MagicWallManager manager, int dataId, DataTypeEnum dataType, DaoTypeEnum daoTypeEnum)
        {
            //Debug.Log("Init Base : " + dataId);

            _manager     = manager;
            _data_id     = dataId;
            _dataType    = dataType;
            _daoTypeEnum = daoTypeEnum;

            _flockTweenerManager = new FlockTweenerManager();
            _flockStatus         = FlockStatusEnum.NORMAL;
        }
예제 #3
0
        /// <summary>
        /// 检查是否需要回收
        /// </summary>
        public bool CheckIsNeedRecycle()
        {
            var result = false;

            // 如果在运行中的 flock,已经远远离开屏幕,则进行销毁
            if (_flockStatus == FlockStatusEnum.NORMAL && (_manager.SceneStatus != WallStatusEnum.Cutting))
            {
                //Vector3 position = Camera.main.WorldToScreenPoint(GetComponent<RectTransform>().transform.position);
                Vector3 position = GetComponent <RectTransform>().transform.position;

                //Debug.Log("Position: " + GetComponent<RectTransform>().transform.position);

                if (position.x + (Width * 3) < 0)
                {
                    result = true;
                }
                else if (position.x - (Width * 3) > Screen.width)
                {
                    result = true;
                }
                else if (position.y + (Height * 3) < 0)
                {
                    result = true;
                }
                else if (position.y - (Height * 3) > Screen.height)
                {
                    result = true;
                }
            }

            if (result)
            {
                //Debug.Log(gameObject.name + " 废弃 - " + _flockStatus);
                _flockStatus = FlockStatusEnum.OBSOLETE;
            }

            return(result);
        }
예제 #4
0
        /// <summary>
        ///     重置 Agent
        /// </summary>
        public void Reset()
        {
            if (!gameObject.activeSelf)
            {
                gameObject.SetActive(true);
            }

            _flockTweenerManager.Reset();
            _flockTweenerManager = new FlockTweenerManager();



            // 透明度调整
            if (GetComponent <Image>().color != new Color(255, 255, 255, 255))
            {
                GetComponent <Image>().color = new Color(255, 255, 255, 255);
            }

            // 设置 scale
            Vector3 scale = new Vector3(1, 1, 1);

            if (GetComponent <RectTransform>().localScale != scale)
            {
                GetComponent <RectTransform>().localScale = scale;
            }

            GetComponent <RectTransform>().anchoredPosition   = Vector2.zero;
            GetComponent <RectTransform>().anchoredPosition3D = Vector3.zero;
            GetComponent <RectTransform>().sizeDelta          = new Vector2(300, 300);

            GetComponent <Image>().sprite = null;
            isCreateSuccess = false;
            CanEffected     = true;
            _oriVector2     = Vector2.zero;
            _nextVector2    = Vector2.zero;

            _flockStatus = FlockStatusEnum.PREPARED;
        }
예제 #5
0
 //  删除代理
 public void DestoryAgency()
 {
     // 清除 Dotween 代理
     _flockStatus = FlockStatusEnum.OBSOLETE;
     // 删除 Gameobject
 }