y     private void Attack() {
        float distance = Vector3.Distance(target.transform.position, transform.position);
        
        
        Vector3 dir = (target.transform.position - transform.position).normalized;
        float direction = Vector3.Dot(dir, transform.forward);
        
                
        if(distance < 2.5f) {
            if(direction > 0) { 
        PlayerHealth eh = (PlayerHealth)target.GetComponent("PlayerHealth");
        eh.AddjustCurrentHealth(-10);
            }
        }
    }
    private void Attack()
    {
        target = GameObject.FindGameObjectWithTag("Player");
        float   distance  = Vector3.Distance(target.transform.position, transform.position);
        Vector3 dir       = (target.transform.position - transform.position).normalized;
        float   direction = Vector3.Dot(dir, transform.forward);

        Debug.DrawLine(target.transform.position, transform.position, Color.blue);
        //Debug.Log ("Attack Distance: " +target.transform.position );

        if (distance < 5f)
        {
            if (direction > 0)
            {
                PlayerHealth eh = (PlayerHealth)target.GetComponent("PlayerHealth");
                eh.AddjustCurrentHealth(-5);
            }
        }
    }
Beispiel #3
0
    private void Attack()
    {
        target = GameObject.Find("Player");
        float distance = Vector3.Distance(target.transform.position, transform.position);

        Vector3 dir       = (target.transform.position - transform.position).normalized;
        float   direction = Vector3.Dot(dir, transform.forward);

        Debug.Log(distance + " " + direction);

        if (distance < 3.5f)
        {
            if (direction > 0)
            {
                PlayerHealth eh = (PlayerHealth)target.GetComponent("PlayerHealth");
                //Debug.Log(eh.transform.position);
                eh.AddjustCurrentHealth(-10);
                //Debug.Log ("success" + gameObject.name);
            }
        }
    }
Beispiel #4
0
    //атака Enemy
    private void Attack()
    {
        //вводим переменную distance и вычисляем расстояние между игроком
        //и его целью
        float distance = Vector3.Distance(target.transform.position, transform.position);
        //вычисляем единичный векор направления к цели
        Vector3 dir = (target.transform.position - transform.position).normalized;
        //вычисляем нахождение цели в поле зрения (значение 0 и отрицательное - сзади)
        //значение+впереди. Значение меняется от -1 до 1
        float direction = Vector3.Dot(dir, transform.forward);

        //усли дистанция меньше максимальной, то можем нанести урон
        if (distance < 2 && direction > 0)
        {
            //У цели Enemy ищим компонет с именем EnemyHealth - скрипт
            PlayerHealth ah = (PlayerHealth)target.GetComponent("PlayerHealth");
            //и используем его метод изменения состояния здоровья
            //(необходимо переписать AddjustCurrentHeath с учетом новых требований)
            ah.AddjustCurrentHealth(-10);
        }
    }