分享
三行代码  ›  专栏  ›  技术社区  ›  André Sousa

从函数更新时Unity不更新全局变量

  •  0
  • André Sousa  · 技术社区  · 1 周前

    这个矢量2的目标是保存死敌的位置,但是当我全局使用它时,当函数内部有正确的值时,它会变为0,0。

     private Vector2 enemyPosition;
    
    void Update()
    {
        Debug.Log("enemyPosition update: " + enemyPosition);
        gameObject.transform.position = Vector2.MoveTowards(transform.position, enemyPosition, blobSpeed * Time.deltaTime);
    }
    
    public void createBlobMelee(GameObject enemy)
    {
        enemyPosition = new Vector2(enemy.transform.position.x, enemy.transform.position.y);
        Debug.Log("enemyPosition: " + enemyPosition);
        randomBlobx = Random.Range(-1, 1);
        randomBloby = Random.Range(-1, 1);
        Vector2 randomBlobCreate = new Vector2(enemy.transform.position.x + randomBlobx, enemy.transform.position.y + randomBloby);
        Instantiate(gameObject, randomBlobCreate, Quaternion.identity);
    }
    

    这是调试控制台的结果。

    Debug console

    谢谢你的时间, 安德尔索萨

    1 回复  |  直到 1 周前
        1
  •  1
  •   amitklein    1 周前

    public static Vector2 enemyPosition;

    如果它不能是静态的尝试 public 或者试着 static .

    公众的 静止的