试图使用Vector3.distance摧毁我的播放器

时间:2016-02-23 21:08:09

标签: c# unity3d

当爆炸粒子效果在玩家的某个距离内时,我正试图摧毁我的玩家。这是我尝试过的,这个脚本被添加到我的爆炸预制件中:

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变量中犯了一个错误。

2 个答案:

答案 0 :(得分:2)

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

if (playerDis == 4)

if (playerDis <= 4)

这应该捕获任何可能不完全等于4.00的碰撞....因为更新可能不会被足够快地调用。

答案 1 :(得分:1)

问题中的关键字为“在...内”。您应该寻找0到4之间的距离。所以:

<div ng-repeat="benefit in oe.oeBenefits">
 <div class="oeInfo" style="clear: both;">
    <div class="col-md-2 oeCol">
        <img style="height: 160px; padding-top: 20px;" src="ppt/assets/beneTiles/HealthCare.svg">
    </div>
    <div class="col-md-5 oeCol">
        <h1>{{ benefit.benefitName }}</h1>
        <p>Maximum Election Amount: {{ benefit.benefitMax }}</p>
        <p>Contributions to be made: {{ benefit.numberOfContributions }}</p>
        <p ng-show="benefit.employerSeed != null">{{ benefit.employerSeed }}</p>
        <p>link</p>
    </div>              
    <div class="col-md-3 oeCol">
        <p class="oeFeatures" style="font-weight: 800;">Available Features</p>
        <ul>
            <li ng-repeat="feature in benefit.Features">{{ feature.value }}</li>
        </ul>            
    </div>  
    <p></p>
    <div class="col-md-12">
        <hr class="naviaHR100">                    
    </div>
</div>

我认为你的距离永远不会等于4,因为Vector3.Distance()会返回一个浮点数。