Пример #1
0
 public NavHandleData(NavigationRequest req, NavEntity targetEntity)
 {
     entity           = targetEntity;
     sourceRequest    = req;
     entityID         = targetEntity.entityID;
     _movementRequest = new MovementRequest
     {
         entityID = entityID
     };
     isGroup = targetEntity.navEntityType == ENavEntityType.Group;
     if (isGroup)
     {
         _childEntityDataList = new List <NavHandleData>();
         NavGroup group = (NavGroup)targetEntity;
         for (int i = 0; i < group.individualList.Count; i++)
         {
             _childEntityDataList.Add(new NavHandleData(req, group.individualList[i]));
             // 将成员添加进RVO的模拟列表中
             Simulator.Instance.addAgent(
                 group.individualList[i].controlledAgent.GetCurrentPosition().ToRVOVec2()
                 , ENTITY_COLLIDER_RADIUS, 8, 1f, 2f, 1f, NavEntity.GetMaxSpeed(group.individualList[i].entityID), new RVO.Vector2(0, 0));
         }
     }
     destination   = req.destination;
     startPosition = targetEntity.controlledAgent.GetCurrentPosition();
 }