如何测试一个对象与另一个 Unity 的距离

How to test for how far away an object is from another Unity

所以我正在尝试为我的游戏制作一个发射子弹的 Boss,但目前当主要玩家靠近它时我无法让子弹发射。到目前为止,这是我的代码:

public Transform firePoint;
public GameObject bulletPrefab;




// Update is called once per frame
void Update()
{
   
    if()
    {
        Shoot();
    }

  
    
       
       
    
}

void Shoot()
{
    // shooting logic

    Instantiate(bulletPrefab, firePoint.position, firePoint.rotation);


}

}

请问有什么帮助吗?谢谢!

完全取决于 check 对您意味着什么。

对于得到两个物体的距离有Vector3.Distance

var distance = Vector3.Distance(objA.transform.position, objB.transform.position);

这基本上等于使用 Vector3.magnitude

var distance = (objB.transform.position - objB.transform.position).magnitude;

但是,如果你的问题是比较到其他东西的距离,使用Vector3.sqrMagnitude通常会稍微有效一些而不是像

private const float thresholdSqr = someDistance * someDistance;

var distanceSqr = (objB.transform.position - objB.transform.position).sqrMagnitude;
if(distanceSqr <= thresholdSqr)
{
    ...
}