所以基本上我在youtube上遵循这个教程来制作一个黑客n团结的斜线游戏,并且我在这个步骤中我制作了我的立方体Hp和功能Attack,以减少“enemyCube”hp的。到目前为止一切都那么好,但是现在我需要让立方体攻击我,正如教程中所建议的那样,OP创建了一个名为EnemyAttack的新脚本,并且只需删除输入就可以将PlayerAttack代码粘贴到其中。 GetKey部分,因为它不需要computerAI。它适用于OP,但是当我尝试这种方式时,我得到了playerattack上使用的变量的错误,这些变量被复制到enemyattack“member already defined”。我知道我可以改变敌人攻击的所有变量名称,它可以解决问题,但这没有意义,如果我有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);
}
}
}