public override void Update() { if (dodgeDistance < targetDistance) { Vector2 dodgeVector = IsometricUtility.ToIsometricVector2(warrior.RunTimeData.Direction) * warrior.Property.DodgeSpeed * Time.deltaTime; dodgeDistance += dodgeVector.magnitude; warrior.MovementBody.MovePosition( warrior.MovementBody.position + dodgeVector); } if (warrior.animationEnd) { if (chargeState == 2) { actionManager.SetAction(new WarriorHeavyAttackRecovery()); } else { actionManager.SetAction(new WarriorIdel()); } } }
public override void Update() { IsometricUtility.GetVerticalAndHorizontal( warrior.RunTimeData.Direction, out var vertical, out var horizontal); warrior.CharacterAnimator.SetFloat("Vertical", vertical); warrior.CharacterAnimator.SetFloat("Horizontal", horizontal); }
public override void Update() { if (!ChargeEnd) { ChargeTime += Time.deltaTime; IsometricUtility.GetVerticalAndHorizontal( warrior.RunTimeData.Direction, out var vertical, out var horizontal); warrior.CharacterAnimator.SetFloat("Vertical", vertical); warrior.CharacterAnimator.SetFloat("Horizontal", horizontal); if (!IsCharge || ChargeTime > 2.1) { if (ChargeTime < 0.7) { actionManager.SetAction(new WarriorHeavyAttack2(0)); } else if (ChargeTime < 1.4) { actionManager.SetAction(new WarriorHeavyAttack2(1)); } else { actionManager.SetAction(new WarriorHeavyAttack2(2)); } } } }
public override void Update() { if (IsometricUtility.ToIsometricDistance(manager.Character.transform.position, manager.player.transform.position) > manager.AISetting.DetectedDistance) { manager.SetState(new AIIdel()); } if (pathFinded == true) { if (IsometricUtility.ToIsometricDistance(manager.player.transform.position, manager.Character.transform.position) < manager.AISetting.AttackDistance && manager.Character.RunTimeData.BasicAttackTimer <= 0) { manager.SetState(new AIAttack()); } else if (IsometricUtility.ToIsometricDistance(nextPoint, manager.Character.transform.position) > manager.AISetting.StopDistance) { manager.Character.Move( (nextPoint - manager.Character.transform.position).normalized); } else if (!manager.Senser.NextWayPoint(out nextPoint)) { manager.SetState(new AIChase()); } } else if (pathFinded == null) { manager.SetState(new AIIdel()); } }
// Update is called once per frame void Update() { foreach (SpwanMobData item in SpwanMobs) { item.Update(); if (item.ReadyToSpwan() && (unvisible || SpwanWhenVisible)) { item.SpwanMob(); } } if (!isActive && IsometricUtility.ToIsometricDistance( transform.position, player.position) <= ActiveRange) { isActive = true; foreach (SpwanMobData item in SpwanMobs) { item.SetActive(true); } } else if (isActive && IsometricUtility.ToIsometricDistance( transform.position, player.position) > ActiveRange) { isActive = false; foreach (SpwanMobData item in SpwanMobs) { item.SetActive(false); } } }
public override void Start() { nowDistance = 0; knockBackDirection = IsometricUtility.ToIsometricVector2( wound.HitFrom - orcCaptain.MovementBody.position).normalized; orcCaptain.CharacterAnimator.SetBool("IsHurt", true); orcCaptain.HurtSound.Play(); }
public override void Start() { nowDistance = 0; knockBackDirection = IsometricUtility.ToIsometricVector2( spider.MovementBody.position - damage.HitFrom).normalized; spider.CharacterAnimator.SetBool("IsHurt", true); spider.HurtSound.Play(); }
public override void Start() { spider.MoveSound.Play(); IsometricUtility.GetVerticalAndHorizontal( spider.RunTimeData.Direction, out var vertical, out var horizontal); spider.CharacterAnimator.SetFloat("Vertical", vertical); spider.CharacterAnimator.SetFloat("Horizontal", horizontal); spider.CharacterAnimator.SetBool("IsMove", true); }
public override void Start() { IsometricUtility.GetVerticalAndHorizontal( spider.RunTimeData.Direction, out var vertical, out var horizontal); spider.CharacterAnimator.SetFloat("Vertical", vertical); spider.CharacterAnimator.SetFloat("Horizontal", horizontal); spider.CharacterAnimator.SetBool("IsFallDown", false); spider.CharacterAnimator.SetBool("IsMove", false); }
public override void Update() { IsometricUtility.GetVerticalAndHorizontal( spider.RunTimeData.Direction, out var vertical, out var horizontal); spider.CharacterAnimator.SetFloat("Vertical", vertical); spider.CharacterAnimator.SetFloat("Horizontal", horizontal); spider.MovementBody.MovePosition(spider.MovementBody.position + IsometricUtility.ToIsometricVector2(spider.RunTimeData.Direction) * spider.Property.MoveSpeed * Time.deltaTime); }
public void Shooting(Vector3 target, DamageData damage) { MyDamage = damage; Vector3 endPosition = IsometricUtility.ToIsometricVector3( (target - transform.position).normalized * BulletRange); transform.DOBlendableMoveBy(endPosition, (BulletRange / BulletSpeed)) .SetEase(BulletMoveEase) .onComplete += () => GetComponent <Animator>().SetTrigger("Destroy"); hasShot = true; }
public override void Initial() { //Debug.Log("Wandering Start"); pathFinded = false; float distance = Random.Range (manager.AISetting.WounderDistanceMin, manager.AISetting.WounderDistanceMax); float degree = Random.Range(0, 360); manager.Senser.FindPath(manager.Character.transform.position + IsometricUtility.ToIsometricVector3( Quaternion.AngleAxis(degree, Vector3.forward) * (Vector3.one * distance)) , PathFinded); }
public override void Update() { idelTimer -= Time.deltaTime; if (idelTimer < 0) { manager.SetState(new AIWandering()); } if (IsometricUtility.ToIsometricDistance (manager.Character.transform.position, manager.player.transform.position) <= manager.AISetting.DetectedDistance) { manager.SetState(new AIChase()); } }
private void ShootingProjector() { #region 取得發射位置 IsometricUtility.GetVerticalAndHorizontal(Character.RunTimeData.Direction , out float vertical, out float horizontal); var positionIndex = ((int)vertical + 1) * 3 + (int)horizontal + 1; positionIndex = positionIndex > 4 ? positionIndex - 1 : positionIndex; var startPosition = ShottingPoints[positionIndex].position; #endregion var damage = SkillDamage.GetDamageData(Character.Property); damage.HitFrom = gameObject.gameObject.transform.position; Instantiate(Bullet, startPosition, Quaternion.identity) .GetComponent <ProjectSkillCollider>() .Shooting(Character.RunTimeData.TargetPosition, damage); }
public override void Update() { Vector2 dodgeVector = IsometricUtility.ToIsometricVector2(warrior.RunTimeData.Direction) * warrior.Property.DodgeSpeed * Time.deltaTime; dodgeDistance += dodgeVector.magnitude; warrior.MovementBody.MovePosition( warrior.MovementBody.position + dodgeVector); if (dodgeDistance >= targetDistance) { actionManager.SetAction(new WarriorHeavyAttack1(isCharge)); } }
// Start is called before the first frame update void Start() { player = FindObjectOfType <PlayerController>().MyCharacter.transform; foreach (SpwanMobData item in SpwanMobs) { item.Start(gameObject); } if (IsometricUtility.ToIsometricDistance( transform.position, player.position) <= ActiveRange) { isActive = true; } else { isActive = false; } }
public override void Update() { if (IsometricUtility.ToIsometricDistance(manager.Character.transform.position, manager.player.transform.position) > manager.AISetting.DetectedDistance) { manager.SetState(new AIIdel()); } if (IsometricUtility.ToIsometricDistance(manager.player.transform.position, manager.Character.transform.position) > manager.AISetting.AttackDistance) { manager.SetState(new AIChase()); } if (manager.Character.RunTimeData.BasicAttackTimer <= 0) { manager.Character.Move( (manager.player.transform.position - manager.Character.transform.position).normalized); manager.Character.BasicAttack(); } }
public AIAround() { wayPoints = new Queue <Vector3>(); var firstTarget = IsometricUtility .ToIsometricVector3(manager.player.transform.position - manager.Character.transform.position) * manager.AISetting.AroundRadius; wayPoints.Enqueue(firstTarget); float angle = Random.Range(1, 10) > 5 ? -manager.AISetting.AroundDegree : manager.AISetting.AroundDegree; var rotate = Quaternion.AngleAxis(angle, manager.player.transform.position); for (int i = 0; i < manager.AISetting.RoundTurn; i++) { Vector3 nextTarget = firstTarget; for (int r = 0; r <= i; r++) { nextTarget = rotate * nextTarget; } wayPoints.Enqueue(nextTarget); } }