/// <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(); }
/// <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; }
/// <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); }
/// <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; }
// 删除代理 public void DestoryAgency() { // 清除 Dotween 代理 _flockStatus = FlockStatusEnum.OBSOLETE; // 删除 Gameobject }