【问题标题】:Unity C# finding GameObjects using tagsUnity C# 使用标签查找游戏对象
【发布时间】:2014-06-22 03:30:10
【问题描述】:

我刚开始使用 Unity 和 C#,我正试图让敌人追逐玩家。为了让敌人找到并追逐玩家,我使用以下代码:

public GameObject attackingg;
public Entity attacking;
public int distance;

private bool canAttack;

void Start () {
    canAttack = true;
    if(attackingg = null){
        attackingg = GameObject.FindGameObjectWithTag("Player");
        attacking = attackingg.GetComponent<Entity>();
    }
}

void Update () {

    if(attacking.rigidbody2D.transform.position.y>rigidbody2D.transform.position.y - distance)
    {
        rigidbody2D.transform.position += Vector3.up * speed * Time.deltaTime;
    }
    if(attacking.rigidbody2D.transform.position.y<rigidbody2D.transform.position.y - distance)
    {
        rigidbody2D.transform.position += Vector3.down * speed * Time.deltaTime;
    }
    if(attacking.rigidbody2D.transform.position.x>rigidbody2D.transform.position.x+ distance)
    {
        rigidbody2D.transform.position += Vector3.right * speed * Time.deltaTime;
    }
    if(attacking.rigidbody2D.transform.position.x<rigidbody2D.transform.position.x - distance)
    {
        rigidbody2D.transform.position += Vector3.left * speed * Time.deltaTime;
    }
    if (Vector2.Distance (rigidbody2D.transform.position, attacking.transform.position) <= distance && canAttack) {
        attackEntity();
        StartCoroutine(waitForAttack());

    }
}

运行游戏时出现以下错误:

NullReferenceException:对象引用未设置为对象的实例 AttackingMob.Update () (在 Assets/Code/Entities/Mobs/AttackingMob.cs:22)

为什么会发生这种情况,我可以做些什么来解决我的问题?非常感谢任何帮助,谢谢。

【问题讨论】:

    标签: c# tags unity3d


    【解决方案1】:

    您需要使用“播放器”标签标记播放器。您必须通过 Unity 中的编辑器窗口来执行此操作。

    您遇到的另一个问题是您尝试分配 null 而不是实际检查 null。

    if(attackingg = null)
    {}
    

    应该是:

    if(attackingg == null)
    {}
    

    【讨论】:

      【解决方案2】:

      您需要将“Player标签添加到Inspector中的Player GameObject。

      还有错误:

      对象引用未设置为对象的实例

      只需检查您是否已在 Inspector 中分​​配了相应的 GameObject。 而且,在这条线上 if (attacking = null) {} 您应该通过替换 "=" with "==" 来检查 GameObject 是否为 NULL

      【讨论】:

        猜你喜欢
        • 2020-11-16
        • 1970-01-01
        • 1970-01-01
        • 2019-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多