未分配..的Unity变量

时间:2018-12-06 21:16:56

标签: unity3d

我正试图向我开敌。我的脚本看起来不错,但是它说尚未分配目标变量。在检查器中,我将播放器对象选择到目标插槽中。但是它总是说同样的错误。

public GameObject AntagonisticElement;
public GameObject Target;
public float bulletSpeed;
public float enemySpeed;
public float bulletDestroyTime;
public GameObject explsn;
public GameObject bulletPrefab;
public Transform bulletSpawn;

Vector3 pos;

public float min = 20;
public float max = 10;

// Use this for initialization
void Start () {
    Target = GameObject.FindGameObjectWithTag("Tank");
}    
// Update is called once per frame
void Update () {

    transform.LookAt(Target.transform.position);

    if (Vector3.Distance(AntagonisticElement.transform.position, Target.transform.position) >= min)
    {
        AntagonisticElement.transform.position += AntagonisticElement.transform.forward * 4 * Time.deltaTime;

    }
    if (Vector3.Distance(AntagonisticElement.transform.position, Target.transform.position) <= max)
    {
        shootAt();
    }

}

void shootAt()
{

    Instantiate(explsn, bulletSpawn.position, bulletSpawn.transform.rotation);
    var bullet = Instantiate(bulletPrefab, bulletSpawn.position, bulletSpawn.rotation);
    bullet.GetComponent<Rigidbody>().velocity = bullet.transform.forward * bulletSpeed;

}

2 个答案:

答案 0 :(得分:0)

您可以在“启动功能”中覆盖它。删除此行或确保您具有Tank标签。 您可以将目标gameObject拖放到目标字段上

    document_type = association_proxy("document_type_proxy", "document_type")

答案 1 :(得分:0)

您遇到此错误,因为“目标”字段未分配给GameObject。

要分配对MonoBehaviour脚本的引用,请执行以下操作:

  • 从层次结构中选择GameObject,并附加脚本。
  • 在检查器窗口中,找到“目标”插槽。
  • 将预制件拖放到插槽中,或单击其旁边的圆圈以从“项目”或“层次结构”中选择。