Esempio n. 1
0
    IEnumerator AutoAttack(Transform enemy)                                    //自动走向敌人并攻击
    {
        float Distance = Vector3.Distance(transform.position, enemy.position); //玩家当前位置和目标位置的距离

        //print("Distance:"+Distance);
        while (Distance > attackDistance)
        {
            Distance = Vector3.Distance(transform.position, enemy.position);
            Vector3 moveD = enemy.position - transform.position;
            moveD.y = 0;//不考虑垂直方向的位移
            Move3d(moveD);
            yield return(null);
        }
        if (Distance <= attackDistance)
        {
            StopMove();
            EnemyMotion em = enemy.GetComponent <EnemyMotion>();
            if (autoAttack)//如果开启了自动攻击
            {
                while (em.IsLive())
                {
                    Attack(enemy);
                    yield return(null);
                }
                yield break;
            }
            else
            {
                Attack(enemy);
                yield break;
            }
        }
    }
Esempio n. 2
0
	void Awake()
	{
		enemyMotion = GetComponent<EnemyMotion>();
		enemySprite = enemyMotion.GetComponent<SpriteRenderer>();
		enemyTransform = enemyMotion.spriteTransform;
        enemyAudio = GetComponent<AudioSource>();
	}
Esempio n. 3
0
	void Awake()
	{
		damageTaker = GetComponent<DamageTaker>();
		enemyMotion = GetComponent<EnemyMotion>();
		enemySprite = enemyMotion.GetComponent<SpriteRenderer>();
		enemyTransform = enemyMotion.spriteTransform;
	}
Esempio n. 4
0
 //enumクラスの中で値を決める
 public void changeState(EnemyMotion motion)
 {
     currentMotion = motion;
 }