public void walkTargetTriggered(int walkTargetId) { if (walkTargetId == currentTarget.transformId) { //TODO how to handle when you are at the end of the list and getNextWalkTarget returns null currentTarget = walkTargetProvider.getNextWalkTarget(currentTarget, walkDirection); } }
public WalkTarget getWalkTarget() { WalkTarget walkTarget = new WalkTarget(); walkTarget.transformId = targetId; walkTarget.transform = transform; return(walkTarget); }
public void Awake() { walkTargetProvider = walkTargetProviderSelector.getPlayerWalkTargetProvider(); walkDirection = walkTargetProvider.getStartingWalkDirection(); currentTarget = walkTargetProvider.getStartingTarget(); //Set the position of the player to the first position, to prep for the walk to the second target. transform.position = currentTarget.transform.position; currentTarget = walkTargetProvider.getNextWalkTarget(currentTarget, walkDirection); transform.LookAt(currentTarget.transform); animator = GetComponent <Animator>(); ActionController actionController = Singleton <ActionController> .Instance; actionController.registerMovementListener(move); }
public WalkTarget getNextWalkTarget(WalkTarget currentTarget, WalkDirection walkDirection) { if (currentTarget.transformId == 0 && walkDirection == WalkDirection.BACKWARD) { return(null); } else if (currentTarget.transformId == walkTargets.Length && walkDirection == WalkDirection.FORWARD) { return(null); } switch (walkDirection) { case WalkDirection.FORWARD: return(walkTargets[currentTarget.transformId + 1]); case WalkDirection.BACKWARD: return(walkTargets[currentTarget.transformId - 1]); default: return(null); } }