/// <summary> /// 控制敌人的移动方法 /// </summary> void Move() { if (isDamage) { return; } if (isAttack) { Vector2 playerH = (GameObject.FindGameObjectWithTag("Player").transform.position - transform.position); if (playerH.x > 0) { transform.Translate(Vector2.right * speed * Time.deltaTime, Space.Self); } else if (playerH.x < 0) { transform.Translate(Vector2.left * speed * Time.deltaTime, Space.Self); } return; } transform.Translate(Vector2.right * (int)nowDir * speed * Time.deltaTime, Space.Self); if (Vector2.Distance(transform.position, StartPosition) > 3f) { nowDir = (EnemyDir)(-(int)nowDir); transform.localScale = new Vector2((int)nowDir, 1); } }
//被攻击受伤后退 IEnumerator onDamageing(AttackDir nowAtkDir) { isDamage = true; if (nowAtkDir == AttackDir.Left) { E_body.velocity = new Vector2(-10f, 0); } else if (nowAtkDir == AttackDir.Right) { E_body.velocity = new Vector2(10f, 0); } else if (nowAtkDir == AttackDir.Down) { } hp -= 1; if (hp <= 0) { Death(); } yield return(new WaitForSeconds(0.2f)); E_body.velocity = Vector2.zero; if ((int)nowDir == (int)nowAtkDir) { StartPosition = transform.position; nowDir = (EnemyDir)(-(int)nowDir); transform.localScale = new Vector2((int)nowDir, 1); } yield return(new WaitForSeconds(0.3f)); //E_body.velocity = Vector2.zero; isDamage = false; }
// Use this for initialization void Start() { StartPosition = transform.position; nowDir = EnemyDir.Right; E_animator = GetComponent <Animator>(); E_body = GetComponent <Rigidbody2D>(); charaview = GameObject.Find("UI").transform.Find("Canvas").Find("Charactor").GetComponent <CharactorCtrl>(); }
void OnCollisionEnter2D(Collision2D other) { if (other.gameObject.tag == "Ground") { nowDir = (EnemyDir)(-(int)nowDir); transform.localScale = new Vector2((int)nowDir, 1); } }