private void MoveInvoker(CardAgent refCardAgent) { if (!_isPhysicsMoving) { _isPhysicsMoving = true; // 获取相对的位置 Vector2 selfPosition = GetComponent <RectTransform>().anchoredPosition; Vector2 refPosition = refCardAgent.GetComponent <RectTransform>().anchoredPosition; Vector2 to = (selfPosition - refPosition).normalized; Vector2 to2 = to * 100 * _physicesEffectFactor; GetComponent <Rigidbody2D>().AddForce(to2); } }
/// <summary> /// 点击搜索结果的 Item /// </summary> /// <param name="searchBean"></param> private void OnClickSearchResultItem(SearchBean searchBean) { // 将 SearchAgent 关闭 CloseSearchAgentContainer(true); CloseSearchResultContainer(true); // 将card的显示关系打开 _cardAgent.RecoverContainerAfterSearch(); _cardAgent.CardStatus = CardStatusEnum.OBSOLETE; //_manager.agentManager.RemoveItemFromEffectItems(_cardAgent); // 将影响实体清除 // 打开新的卡片 //ItemsFactory itemsFactory = GetItemFactory(searchBean.type); Vector3 genVector3 = _cardAgent.GetComponent <RectTransform>().anchoredPosition; CardAgent cardAgent = _manager.operateCardManager.CreateNewOperateCard(searchBean.id, searchBean.type, genVector3, _cardAgent.OriginAgent); //itemsFactory.GenerateCardAgent(genVector3, null, searchBean.id, true); cardAgent.GoToFront(() => { }); }
/// <summary> /// 创建一个新的操作卡片 /// </summary> /// <param name="dataId">数据ID</param> /// <param name="dataType">数据类型</param> public CardAgent CreateNewOperateCard(int dataId, DataTypeEnum dataType, Vector3 position, FlockAgent refAgent) { CloseCardWhenOverNumber(); CardAgent cardAgent = OperateCardFactoryInstance. Generate(_manager, position, _container, dataId, dataType, refAgent); refAgent.cardAgent = cardAgent; Vector3 scaleVector3 = new Vector3(0.1f, 0.1f, 0.1f); cardAgent.GetComponent <RectTransform>().localScale = scaleVector3; cardAgent.CardStatus = CardStatusEnum.GENERATE; EffectAgents.Add(cardAgent); int iskinect = _manager.magicSceneManager.GetCurrentScene().GetSceneConfig().isKinect; cardAgent.SetMoveBehavior(_manager.collisionMoveBehaviourFactory.GetMoveBehavior(_manager.collisionBehaviorConfig.behaviourType, iskinect)); _manager.collisionManager.AddCollisionEffectAgent(cardAgent); return(cardAgent); }
public static CardAgent Generate(MagicWallManager magicWallManager, Vector3 position , Transform parent, int dataId, DataTypeEnum dataType, FlockAgent refFlockAgent) { IDaoService daoService = magicWallManager.daoServiceFactory.GetDaoService(refFlockAgent.daoTypeEnum); OperateCardData cardData = null; CardAgent cardPrefab = null; //magicWallManager.daoService.getac if (dataType == DataTypeEnum.Enterprise) { Enterprise enterprise = daoService.GetEnterpriseById(dataId); Debug.Log("enterprise : " + (enterprise == null)); var activities = daoService.GetActivitiesByEnvId(enterprise.Ent_id); var products = daoService.GetProductsByEnvId(enterprise.Ent_id); var videos = daoService.GetVideosByEnvId(enterprise.Ent_id); var catalogs = daoService.GetCatalogs(enterprise.Ent_id); OperateCardDataCross operateCardDataCross = EnterpriseAdapter .Transfer(enterprise, activities, products, videos, catalogs); //Debug.Log(operateCardDataCross.ToString()); //if (CheckIsSimple(operateCardDataCross)) //{ // cardPrefab = magicWallManager.operateCardManager.singleCardPrefab; // cardData = operateCardDataCross; // Debug.Log("Generate 单个企业卡片"); //} //else //{ cardPrefab = magicWallManager.operateCardManager.crossCardPrefab; // 单个卡片的逻辑 //OperateCardDataSingle operateCardDataSingle = new OperateCardDataSingle(); // Debug.Log("Generate 正常企业卡片"); cardData = operateCardDataCross; //cardData = (OperateCardDataSingle)operateCardDataCross; //} } else if (dataType == DataTypeEnum.Product || dataType == DataTypeEnum.Wine) { Product product = daoService.GetProductDetail(dataId); Enterprise enterprise = daoService.GetEnterpriseById(product.Ent_id); Debug.Log("enterprise : " + enterprise); //Debug.Log("enterprise to null : " + (enterprise == null)); OperateCardDataSlide operateCardDataSlide = ProductAdapter.Transfer(product, enterprise); cardPrefab = magicWallManager.operateCardManager.sliceCardPrefab; cardData = operateCardDataSlide; } else { Activity activity = daoService.GetActivityDetail(dataId); Enterprise enterprise = daoService.GetEnterpriseById(activity.Ent_id); OperateCardDataSlide operateCardDataSlide = ActivityAdapter.Transfer(activity, enterprise); cardPrefab = magicWallManager.operateCardManager.sliceCardPrefab; cardData = operateCardDataSlide; } // 创建card CardAgent cardAgent = Instantiate(cardPrefab, parent); cardAgent.GetComponent <Transform>().position = position; //cardAgent.DataId = dataId; cardAgent.InitComponent(magicWallManager, dataId, dataType, position, refFlockAgent); cardAgent.InitData(cardData); return(cardAgent); }