Так что в основном я следую этому руководству на youtube, чтобы сделать рутинную игру n slash на единстве, а im на этом этапе, когда я сделал, дал мой куб Hp и функцию Attack, чтобы уменьшить «вражеский куб» hp , Пока все хорошо, но теперь мне нужно сделать куб атаковать меня так же, как предлагается в учебнике, OP создает новый скрипт под названием EnemyAttack и просто копирует в него код PlayerAttack, просто удаляя Input. GetKey, поскольку он не нужен для computerAI. Он отлично работает для OP, но когда я пытаюсь это сделать, я получаю ошибку в переменных, используемых для playattack, которые были скопированы на «атакующий враг», который уже определен. Я знаю, что я могу изменить все имена переменных для enemyAttack, и это решит проблему, но это не имеет смысла, что, если бы у меня было 200 типов врагов, 200 переменных, которые делают то же самое, кажется неправильным. У кого-нибудь есть идея, почему я не могу просто скопировать пасту, и OP может?член уже был определен
Извините за плохой английский, я перечислить код выше.
using UnityEngine;
using System.Collections;
public class PlayerAtack : MonoBehaviour
{
public GameObject target;
public float attackTimer;
public float cooldown;
void Start()
{
attackTimer = 0;
cooldown = 2.0f;
}
void Update()
{
if (attackTimer > 0)
{
attackTimer -= Time.deltaTime;
}
if (attackTimer < 0)
{
attackTimer = 0;
}
if (Input.GetKeyUp(KeyCode.F))
{
if (attackTimer == 0)
{
Attack();
attackTimer = cooldown;
}
}
}
private void Attack()
{
Vector3 dir = (target.transform.position - transform.position).normalized;
float direction = Vector3.Dot(dir, transform.forward);
float distance = Vector3.Distance(target.transform.position, transform.position);
if (distance < 2)
{
EnemyHealth eh = (EnemyHealth)target.GetComponent("EnemyHealth");
eh.AddjustCurrentHealth(-10);
}
}
}
Я не вижу там никакого кода, который даст ошибку, можете ли вы указать, на какой строке вы видите эту ошибку? –
Есть ли у вас вопрос о копировании и вставке или почему вы получаете сообщение об ошибке? EnemyAttack не входит в код, который вы указали. В вашем коде также много проблем с форматированием. –
EnemyAttack - это копия PlayerAttack, эта проблема, когда я копирую код вставить, он не позволит мне скомпилировать, скажем, что цель, атака и кулдаун уже определены. –