IEnumerator playerUpdate() { while (!entityVisual.modelLoaded) { yield return(null); } while (BeAlive()) { pathSensor.TakeSample(this); if (pathSensor.IsDirty && pathSensor.Value) { currentPath?.Clear(); AcceptPathChange(); } if (currentPath == null || currentPath.Count == 0) { if (currentPath?.Count == 0) { currentPath = null; onReachDst(); entityVisual.SetAniStatus(EntityAnimStatus.Idle); if (GameEntityMgr.GetSelectedEntity() == this) { ShowEyeSight(); } } //yield return new WaitForSeconds(0.5f); yield return(new WaitForEndOfFrame()); } if (currentPath != null && currentPath.Count > 0) { if (controllRemote.PTiliMove(1)) { if (currentPath.Count == 1) { //yield return movefromApoint2Bpoint(currentPath[0], currentPath[0]); currentPath.RemoveAt(0); } else { ICell start = currentPath[0]; ICell next = currentPath[1]; yield return(movefromApoint2Bpoint(start, next)); currentPath.RemoveAt(0); } } else { currentPath.Clear(); } } } }