试图使用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
变量中犯了一个错误。
我无法发表评论,因为我还没有 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() 返回一个浮点数。