void FixedUpdate() { if (Time.timeScale == 0) { return; } if (Modules.statusGame == StatusGame.menu || Modules.statusGame == StatusGame.start || Modules.statusGame == StatusGame.pause) { return; } //xu ly nhai lai hoat dong doi tuong duoi theo stepHero.Add(Modules.mainCharacter.transform.position); aniHero.Add(myHero.statusHero); if (stepHero.Count >= timeDelayFollow) { Vector3 pointNow = stepHero[0] - detalPoint; if (Modules.statusGame == StatusGame.over) { pointNewEnemy = new Vector3(myHero.GetOldPoint().x, pointNow.y, transform.position.z); } else { pointNewEnemy = new Vector3(pointNow.x, pointNow.y, transform.position.z); } mesRunAniNow = aniHero[0]; stepHero.RemoveAt(0); aniHero.RemoveAt(0); } }
void Update() { if (Time.timeScale == 0) { return; } if (Modules.statusGame == StatusGame.menu || Modules.statusGame == StatusGame.start || Modules.statusGame == StatusGame.pause) { return; } if ((Modules.statusGame == StatusGame.over || Modules.statusGame == StatusGame.stop) && !overGame) { StatusHero checkDie = myHero.statusHero; if (checkDie == StatusHero.fallA || checkDie == StatusHero.fallB || checkDie == StatusHero.fallC) { if (checkDie == StatusHero.fallA) { CallAniNew(aniStan, StatusHero.fallA, false); } if (checkDie == StatusHero.fallB) { CallAniNew(aniStan, StatusHero.fallB, false); } else if (checkDie == StatusHero.fallC) { CallAniNew(aniAttack, StatusHero.fallC, false); } overGame = true; } } //xu ly xa gan doi tuong duoi theo if (Modules.distanceEnemy != oldDistanceEnemy && Modules.distanceEnemy != 0) { oldDistanceEnemy = Modules.distanceEnemy; MoveNearFarFollow(); } RunMoveNearFarFollow(); //if (!showHide) return; transform.position = Vector3.Lerp(transform.position, new Vector3(pointNewEnemy.x, pointNewEnemy.y, transform.position.z), 20 * Time.deltaTime); if (mesRunAniNow != mesRunAniOld && Modules.statusGame == StatusGame.play) { PlayAnimation(); mesRunAniOld = mesRunAniNow; } ReturnRunBasic(); }
void CallAniNew(AnimationClip aniClip, StatusHero typeAni, bool loopAni = true, float speedMore = 1, float speedAdd = 0, float maxSpeed = -1) { if (aniEnemy == null || aniClip == null) { return; } mesRunAniNow = typeAni; float speedAniNow = 0; speedAniNow = /*Modules.speedGame * */ numEditSpeed * speedMore + speedAdd; if (maxSpeed != -1 && speedAniNow > maxSpeed) { speedAniNow = maxSpeed; } aniEnemy[aniClip.name].speed = speedAniNow; aniEnemy[aniClip.name].time = 0; aniEnemy[aniClip.name].wrapMode = WrapMode.Loop; if (!loopAni) { aniEnemy[aniClip.name].wrapMode = WrapMode.Once; } aniEnemy.Play(aniClip.name); }