试图使用Vector3.distance摧毁我的玩家

本文关键字:摧毁 我的 玩家 distance Vector3 | 更新日期: 2023-09-27 18:36:04

每当爆炸粒子效果进入玩家的一定距离内时,我都会尝试摧毁我的玩家。这是我尝试过的,这个脚本被添加到我的爆炸预制件中:

using UnityEngine;
using System.Collections;
public class ExplosionController : MonoBehaviour {

GameObject playerObj;
Transform player;
Transform playerPos;
// Use this for initialization
void Start () {

    player= GameObject.FindGameObjectWithTag("Player").transform;
    playerObj = GameObject.FindGameObjectWithTag("Player");

}
void Update()
{
    float playerDis = Vector3.Distance(player.position, transform.position);
    if (playerDis == 4)
    {
        Debug.Log(playerDis);
        Destroy(playerObj);
    }
}
}
我在

底部条件下的调试尝试没有产生任何控制台输出,因此我认为我在 playerDis 变量中犯了一个错误。

试图使用Vector3.distance摧毁我的玩家

我无法发表评论,因为我还没有 50 个声望点,但我会改变你的

if (playerDis == 4)

if (playerDis <= 4)

这应该捕获任何可能不完全等于 4.00 的冲突,因为调用更新的速度可能不够快。

问题中的关键字是"内"。您应该寻找从 0 到 4 的距离。所以:

void Update()
{
    float playerDis = Vector3.Distance(player.position, transform.position);
    if (playerDis <= 4)
    {
        Debug.Log(playerDis);
        Destroy(playerObj);
    }
}

我假设你的距离永远不会完全等于 4,考虑到 Vector3.Distance() 返回一个浮点数。