OnControllerColliderHit触发次数过多

时间:2014-11-28 02:22:04

标签: c# unity3d

我写了这个脚本,以减少玩家的生命,并在与某些物体接触时将它们移回原点,但我发现它会触发每次碰撞1到4次,从3下降到-1。

using UnityEngine;
using System.Collections;

public class HitCar : MonoBehaviour
{
    public static int lives = 3;

    void OnControllerColliderHit(ControllerColliderHit col)
    {
        if(col.gameObject.name == "utd_car1")
        {
            Destroy(col.gameObject);
            lives--;
            if(lives <= 0)
            {
                Application.LoadLevel("LoseScreen");
            }
            else
            {
                var player = GameObject.Find("3rd Person Controller");
                player.transform.position = new Vector3(0, 2, -26); 
            }
        }
    }

    void OnLevelWasLoaded(int level) 
    {
        lives = 3;
    }
}

任何阻止它每次碰撞多次触发的方法都将非常感激。

1 个答案:

答案 0 :(得分:1)

当你想要几次击中时,使用

OnControllerColliderHit,最好是移动它。

您可以切换到此代码:

void OnCollisionEnter(Collision col) 
{
    if(col.gameObject.name == "utd_car1")
    {  
    }
}