/// <summary> /// This routine does the movement animation. /// </summary> /// <returns>Nothing; IEnumerator is just for coroutines</returns> /// <param name="path">The path we want to move along</param> /// <param name="bCombatMenu">This combat Menu will be hide during animation</param> public IEnumerator MoveRoutine(BMapTile[] path, BCombatMenu bCombatMenu) { bCombatMenu.Hide(); for (int i = 1; i < path.Length; i++) { Vector3 nextWp = path[i].transform.position; Vector3 lookPoint = nextWp; lookPoint.y = 0; meshContainer.transform.LookAt(lookPoint); do { Vector3 translation = nextWp - transform.position; float distance = translation.magnitude; translation = translation.normalized * Time.deltaTime * movementSpeed; if (distance < translation.magnitude) { transform.position = nextWp; break; } else { transform.Translate(transform.InverseTransformDirection(translation)); } yield return(0); } while(transform.position != nextWp); } bCombatMenu.OpenForBUnit(parent); EventProxyManager.FireEvent(this, new EventDoneEvent()); }
public void PopupCombatMenu() { // reset movement display Activate(); bCombatMenu.OpenForBUnit(this); }