Exemplo n.º 1
0
 void AssignTarget(ClimbDirection direction)
 {
     canMove     = false;
     targetPoint = GetDestination(direction);
     if (targetPoint != null)
     {
         //General Movement
         AssignMovePoints(this.transform, targetPoint);
         //IK
         if (direction == ClimbDirection.Down || direction == ClimbDirection.Left)
         {
             StartCoroutine(MovingHands(true, targetPoint.GetComponent <ClimbPoint>()));
         }
         else
         {
             StartCoroutine(MovingHands(false, targetPoint.GetComponent <ClimbPoint>()));
         }
         if (GetTransition(direction) == ClimbTransitionType.dismount)
         {
             autoDismount = true;
         }
         current = targetPoint.GetComponent <ClimbPoint>();
     }
     else
     {
         canMove = true;
     }
 }
Exemplo n.º 2
0
 public RopeComponent(int entityId, List<Body> bodies, Body anchorBody, ClimbDirection climbDirection)
 {
     _entityId = entityId;
     _bodies = bodies;
     _anchorBody = anchorBody;
     _climbDirection = climbDirection;
 }
Exemplo n.º 3
0
            Transform GetDestination(ClimbDirection direction)
            {
                Transform retVal = null;

                foreach (Climbing.ClimbNeighbor point in current.neighbors)
                {
                    if (point.direction == direction)
                    {
                        retVal = point.target.transform;
                        break;
                    }
                }
                return(retVal);
            }
Exemplo n.º 4
0
            ClimbTransitionType GetTransition(ClimbDirection direction)
            {
                ClimbTransitionType retVal = ClimbTransitionType.step;

                foreach (Climbing.ClimbNeighbor point in current.neighbors)
                {
                    if (point.direction == direction)
                    {
                        retVal = point.type;
                        break;
                    }
                }
                return(retVal);
            }
Exemplo n.º 5
0
 public bool ClimbAvailable(ClimbDirection dir, out Vector2 climbPosition)
 {
     foreach (var point in availableClimbPoints)
     {
         if ((dir == ClimbDirection.Left && point.transform.localScale.x < 0.0f) ||
             (dir == ClimbDirection.Right && point.transform.localScale.x >= 0.0f))
         {
             climbPosition = new Vector2(point.transform.position.x, point.transform.position.y);
             return(true);
         }
     }
     climbPosition = Vector2.zero;
     return(false);
 }